Funciones y modificadores de visibilidad
Comprenda cómo definir funciones, gestionar su visibilidad (public, private, internal, external) y trabajar con sus parámetros y valores de retorno.
Funciones y modificadores de visibilidad es una lección gratuita de Blockchain Smart Contracts with Solidity en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Blockchain Smart Contracts with Solidity, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Blockchain Smart Contracts with Solidity incluye 4 lecciones en total.
Functions: Your Contract's Actions
¡Bienvenido a la Lección 3! Hoy nos adentraremos en las funciones en Solidity. Piensa en las funciones como las acciones u operaciones que tu contrato inteligente puede realizar.
Te permiten organizar tu código, hacerlo reutilizable y definir cómo los usuarios (u otros contratos) pueden interactuar con los datos y la lógica de tu contrato.
Defining a Simple Function
Cada función necesita un nombre y un cuerpo donde reside su código. Esta es la estructura básica:
- Palabra clave
function - Nombre de la función (p. ej.,
greet) - Paréntesis
()para los parámetros - Llaves
{}para el bloque de código
Veamos un ejemplo muy sencillo.
Basic Function Example
Este contrato tiene una función llamada getName. No toma ninguna entrada y simplemente devuelve una cadena de texto. ¡Añadiremos la visibilidad pronto!
Intenta ejecutarlo para ver cómo una función puede devolver un valor.
pragma solidity ^0.8.0;
contract MyFirstFunctions {
function getName() pure returns (string memory) {
return "Coddy";
}
}Controlling Access: Visibility
Las funciones de Solidity, al igual que las variables, tienen modificadores de visibilidad. Estos definen quién puede llamar a una función y cómo.
Comprender la visibilidad es fundamental para la seguridad y el diseño correcto de los contratos. Existen cuatro tipos: public, external, internal y private.
Public Functions: Open for All
Una función public es la más accesible. Puede ser llamada:
- Desde fuera del contrato (por usuarios u otros contratos).
- Desde dentro del contrato (por otras funciones dentro del mismo contrato).
Si no especificas una visibilidad, las funciones son public por defecto. Es una buena práctica especificarla siempre de forma explícita.
Public Function in Action
Aquí, setValue y getValue son ambos públicos. Puedes llamarlos directamente desde una cuenta externa u otro contrato.
Ejecuta este ejemplo e intenta llamar a ambas funciones después de desplegar.
pragma solidity ^0.8.0;
contract PublicExample {
uint public myValue;
function setValue(uint _newValue) public {
myValue = _newValue;
}
function getValue() public view returns (uint) {
return myValue;
}
}External Functions: External Calls Only
Las funciones external solo pueden ser llamadas desde fuera del contrato. No pueden ser llamadas internamente por otras funciones dentro del mismo contrato.
Esto se utiliza a menudo para funciones que son puntos de entrada para interacciones externas. También es más eficiente en cuanto a consumo de gas para recibir grandes matrices de datos.
External Function Example
Observa cómo onlyExternal solo puede ser llamada desde fuera. Si otra función dentro de ExternalExample intentara llamarla, resultaría en un error de compilación.
Ejecuta esto para ver la interacción externa.
pragma solidity ^0.8.0;
contract ExternalExample {
uint public count = 0;
function incrementExternal() external {
count++;
}
// This function can't call incrementExternal() directly.
// Try adding 'incrementExternal();' inside this function to see the error.
function getCount() public view returns (uint) {
return count;
}
}Internal & Private: For Internal Use
Las funciones internal solo pueden ser llamadas desde dentro del contrato actual o por contratos que hereden de él.
Las funciones private son las más restringidas. Solo pueden ser llamadas desde dentro del contrato en el que están definidas. Incluso los contratos que heredan no pueden llamarlas.
Estas son ideales para funciones auxiliares que no deberían exponerse externamente.
Parameters & Return Values
Las funciones pueden aceptar parámetros (entradas) y devolver valores (salidas).
- Los parámetros se definen dentro de los paréntesis
(). - Los tipos de retorno se especifican mediante la palabra clave
returns (type).
Esto permite que las funciones sean dinámicas y procesen diferentes datos.
Function Visibility Check
¿Cuál de los siguientes modificadores de visibilidad de funciones significa que una función SOLO puede ser llamada desde fuera del contrato, pero NO desde otra función dentro del mismo contrato?
Recap: Functions & Visibility
¡Buen trabajo! Has aprendido los fundamentos de las funciones en Solidity.
- Las funciones organizan la lógica del contrato.
public: Se pueden llamar desde cualquier lugar.external: Solo se pueden llamar desde fuera.internal: Se pueden llamar desde dentro y por contratos derivados.private: Solo se pueden llamar desde dentro del contrato donde se definen.- Las funciones pueden recibir parámetros y devolver valores.
¡A continuación, exploraremos estructuras de datos más complejas como mappings y arrays dinámicos!
Preguntas frecuentes
¿La lección «Funciones y modificadores de visibilidad» es gratis?
Sí — el texto completo de «Funciones y modificadores de visibilidad» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Blockchain Smart Contracts with Solidity, actualiza a CoddyKit PRO. El curso de Blockchain Smart Contracts with Solidity incluye 4 lecciones en total.
¿Qué aprenderé en «Funciones y modificadores de visibilidad»?
Comprenda cómo definir funciones, gestionar su visibilidad (public, private, internal, external) y trabajar con sus parámetros y valores de retorno. Practicas Blockchain Smart Contracts with Solidity con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Blockchain Smart Contracts with Solidity?
No se requiere experiencia previa. Blockchain Smart Contracts with Solidity en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Funciones y modificadores de visibilidad»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Blockchain Smart Contracts with Solidity?
Sí. Cada lección de Blockchain Smart Contracts with Solidity incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Tipos de datos y variables en Solidity
- Estructuras de control y bucles
- Funciones y modificadores de visibilidad
- Structs y enums