跳到主要内容

WTF Cairo极简教程: 2. Primitive Types

我最近在学cairo-lang,巩固一下细节,也写一个WTF Cairo极简教程,供小白们使用。教程基于cairo 2.2.0版本。

推特:@0xAA_Science@WTFAcademy_

WTF Academy 社群:Discord微信群官网 wtf.academy

所有代码和教程开源在 github: github.com/WTFAcademy/WTF-Cairo


在本章节中,我们将介绍 Cairo 中的基本数据类型,包括 felt、短字符串、布尔值和无符号整数。

felt

felt域元素)是 Cairo 中最基本的数据类型,也是其他数据类型的构建基石。它可以表示 252位(31字节)的数据,支持加法、减法、乘法和除法等基本运算。

// Felt:域元素,可以表示 252 位整数
let x_felt = 666;
let y_felt = x_felt * 2;

短字符串

Cairo支持长度少于 31 个字符的短字符串。然而,它们实际上以 felt 的形式进行存储。

// 用 felt 表示短字符串
let x_shortString = 'WTF Academy';

布尔值

Cairo支持布尔数据类型,它有两种可能的值:truefalse

// 布尔值:真或假
let x_bool = true;
let y_bool = false;

整数

Cairo支持不同大小的无符号整数,包括 u8(uint8,无符号 8 位整数)、u16u32u64u128uint256 不是原生支持的,但您可以通过 use integer::u256_from_felt252 导入它。

// 无符号整数
// 无符号 8 位整数
let x_u8 = 1_u8;
let y_u8: u8 = 2;
// 无符号 16 位整数
let x_u16 = 1_u16;
// 无符号 32 位整数
let x_u32 = 1_u32;
// 无符号 64 位整数
let x_u64 = 1_u64;
// 无符号 128 位整数
let x_u128 = 1_u128;
// 无符号大小整数(通常用于表示索引和长度)
let value_usize = 1_usize;

总结

在本章中,我们探讨了Cairo中的基本类型,包括felt、短字符串、布尔值和无符号整数。在接下来的章节中,我们将通过示例更深入地了解这些类型。