¿Qué es la solidez?
Inicialmente fue propuesto en 2014 por Gavin Wood, pero más tarde fue desarrollado y lanzado por Christian Reitwiessner, Alex Beregszaszi, Yoichi Hirai, y varios antiguos colaboradores principales de Ethereum, Solidity permite la creación y redacción de contratos inteligentes en plataformas blockchain como Ethereum, Ethereum clásico, Tron, entre otros.
Sirve como idioma principal en la máquina virtual de Ethereum (EVM).
Similar a Javascript
En su forma más básica, es un "lenguaje de tipo impreciso". El lenguaje funciona de manera muy similar a C y Javascript pero integra soporte adicional para variables de estado, tipos de datos, y funciones de programación.
Cuando Wood diseñó esto por primera vez, dijo que era para que resulte familiar y fácil para los desarrolladores web existentes. A diferencia de Javascript, Solidity tiene tipos de devolución de tipo estático y variable.
Con solidez, Los desarrolladores de blockchain pueden escribir aplicaciones que implementan la lógica empresarial autoaplicable (autogobernada) incorporada en contratos inteligentes. En llano, esto es lo que permite que los contratos sean autoejecutables, no requiere la participación humana, una vez que se escribe el código.
Para aquellos que son programadores expertos, este idioma es bastante fácil. Para el profano, sin embargo, se necesita tiempo y paciencia.
Comprensión de la sintaxis y los tipos de datos generales
La solidez admite tipos de valores genéricos, específicamente booleanos, enteros direcciones, literales de cadena, y modificadores. Exploremos cada uno.
Booleanos
En informática, El tipo de datos booleano es un tipo de datos que tiene dos valores posibles:verdadero o falso. Estos valores están destinados a representar los dos valores de verdad de la lógica y el álgebra booleana. Para obtener más información sobre esto, por favor haga clic aquí.
Los operadores lógicos que devuelven tipos de datos booleanos:
- ! Negación lógica
- &&conjunción lógica, "y"
- || disyunción lógica, "o"
- ==igualdad
- ! =desigualdad
Enteros
Solidity admite int / unit para enteros con signo y sin signo, respectivamente. Estas asignaciones de almacenamiento pueden ser de varios tamaños. Se pueden usar palabras clave como uint8 y uint256 para asignar un tamaño de almacenamiento de 8 bits a 256 bits respectivamente. Por defecto, la asignación es de 256 bits. Es decir, uint e int se pueden usar en lugar de uint256 e int256.
Los operadores compatibles con los tipos de datos enteros son:
- Comparaciones:<=, <, ==, ! =,> =,> . Estos se utilizan para evaluar a bool.
- Operadores de bits:&, |, ^ exclusivo bit a bit "o", ~ negación bit a bit, "no".
- Operadores aritméticos:+, -, unario -, unario +, *, /, % recordatorio, ** exponenciación, <
> Giro a la derecha.
El EVM devuelve una excepción de tiempo de ejecución cuando el operador de módulo se aplica al cero de una operación de "división por cero".
Dirección
Una dirección puede contener un valor de 20 bytes equivalente al tamaño de una dirección Ethereum. Estos tipos de direcciones están respaldados por miembros que sirven como base de contrato.
Para obtener más información sobre "valores de bytes", por favor haga clic aquí.
Literales de cadena
Un "literal de cadena" o una cadena anónima, es un tipo de literal en programación para la representación de un valor de "cadena" dentro del código fuente de un programa de computadora. Para obtener más información sobre esto, por favor haga clic aquí.
A diferencia del lenguaje C, Los literales de cadena en Solidity implican ceros de valor final. Estos se pueden representar mediante comillas simples o dobles:"foo" o "bar".
Por ejemplo, "Bar" representará un elemento de 3 bytes, en lugar de cuatro (4).
Similar, con literales enteros, los literales son convertibles inherentemente, utilizando el ajuste correspondiente - byte o cadena.
Modificador
En contratos inteligentes, los modificadores ayudan a asegurar la coherencia de las condiciones definidas, antes de ejecutar el código. En otras palabras, se asegura de que las condiciones estén correctamente definidas, para correr el riesgo de un cálculo inexacto y, por lo tanto, de una ejecución.
Mapeos
La solidez proporciona matrices básicas, enumeraciones operadores, y valores hash para crear una estructura de datos, conocido como "mapeos". Se utilizan para devolver valores asociados con una ubicación de almacenamiento determinada.
Una "matriz" es una asignación de memoria contigua de un tamaño definido por el programador donde si el tamaño se inicializa como "K", y el tipo de elemento se instancia como "T", la matriz se puede escribir como T [k].
Matrices dinámicas
Las matrices también se pueden instanciar dinámicamente usando la notación uint [] [6]. Esto significa que se iniciará una matriz dinámica con seis asignaciones de memoria contiguas, mientras que una matriz bidimensional se puede inicializar como arr [2] [4], donde los dos índices muestran las dimensiones de la matriz.
Muestra de código de solidez
solidez ragma> =0,5,0 <0,7,0;
contract Coin {// La palabra clave "público" hace que las variables// accesible desde otros contratos
dirección de la cuenta pública;
mapeo (dirección => uint) balances públicos; // Los eventos permiten a los clientes reaccionar ante situaciones específicas
// cambios de contrato que declaras
evento enviado (dirección de, frente a, cantidad uint); // El código de constructor solo se ejecuta cuando el contrato
// es creado
constructor () public {
minter =msg.sender; } // Envía una cantidad de monedas recién creadas a una dirección
// Solo puede ser llamado por el creador del contrato
función mint (receptor de dirección, uint amount) public {
require (msg.sender ==minter); requieren (cantidad <1e60); saldos [receptor] + =monto; } // Envía una cantidad de monedas existentes
// de cualquier persona que llama a una dirección
función de envío (dirección de receptor, uint amount) public {
require (amount <=saldos [msg.sender], "Saldo insuficiente."); saldos [msg.sender] - =monto; saldos [receptor] + =monto; emitir Enviado (msg.sender, receptor, Monto); }}
Información del fondo
- ¿Cuáles son los tipos de giros bancarios?
- ¿Qué es la banca desde PC?
- ¿Cuáles son los tipos de acciones corporativas?
- ¿Qué es un CD IRA?
- ¿Qué tipos de préstamos se pueden informar a la HMDA?
- ¿Qué es un DU en una hipoteca?
- ¿Qué es DeFi?
- ¿Qué es el inventario:tipos,
- ¿Qué es Floater Fund? Definición, Caracteristicas y tipos
-
¿Cuáles son los principales tipos de activos?
Un activo es un recurso propiedad o controlado por un individuo, corporación Corporación Una corporación es una entidad legal creada por individuos, accionistas, o accionistas, con el propósito de ope...
-
Tipos de seguro de automóvil:¿Qué cobertura necesito?
Comprar un seguro de automóvil puede resultar abrumador. Pero un poco de investigación puede ser de gran ayuda para encontrar la póliza adecuada para sus necesidades. Su cobertura de seguro de autom...