Análisis de contratos NFT (5) - String.sol
1. Requisitos de configuración:
1. Requisitos medioambientales: WeBASE-Front
2. Idioma del contrato: Solidez >=0.6.0 <0.8.0
2. Análisis del contrato Strings.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
/**
* @dev String operations.
*/
library Strings {
/**
* @dev Converts a `uint256` to its ASCII `string` representation.
*/
function toString(uint256 value) internal pure returns (string memory) {
// Inspired by OraclizeAPI's implementation - MIT licence
// https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol
//如果是0直接返回字符串“0”
if (value == 0) {
return "0";
}
uint256 temp = value;
uint256 digits;
//循环计算uint256数字的数位个数digits
while (temp != 0) {
digits++;
temp /= 10;
}
//创建一个相同数位大小的bytes字符数组
bytes memory buffer = new bytes(digits);
uint256 index = digits - 1;
temp = value;
//循环,倒序保存字符到字符空间buffer
//bytes1(uint8(48 + temp % 10)) EG:temp是52的话,结果是0x32 十六进制
while (temp != 0) {
buffer[index--] = bytes1(uint8(48 + temp % 10));
temp /= 10;
}
return string(buffer);
}
}
3. El último artículo: análisis de contratos NFT (4) - Counters.sol
Análisis de contratos NFT (4) - Counters.sol
4. El siguiente artículo: Continuará
5. Artículos relacionados de referencia
notas de solidez (1) - primeras
notas de solidez (2) - segundas
notas de solidez (3) - notas de solidez de uso abstracto
(4) - propiedades de congelación y transacción
notas de solidez (5) - notas de solidez de uso de eventos (6) - notas de solidez
de uso de modificadores
(7) - Notas de solidez de la pila de almacenamiento de memoria del área de almacenamiento
(8) - Notas de solidez de uso puro
(9) - Notas de solidez de uso de la biblioteca
(10) - Uso de
notas de solidez de uso (11) -
Arma final de solidez de uso de estructura - Cruzar el umbral y dominar el núcleo