跳转到内容

字符串和字符串构造器

字符串是不可更改的字符序列,这意味着 字符串一旦创建,就不能更改。 字符串可用于存储文本,因此可将其转换为[单元格][单元格]类型,用作信息体。

要以省 gas 的方式连接字符串,请使用 字符串生成器

要直接使用 字符串字面量,请参阅:字符串字面量

beginString

fun beginString():StringBuilder

创建并返回空 StringBuilder

使用示例

fizzStringBuilder = beginString();

开始评论

fun beginComment():StringBuilder

创建并返回一个空的 字符串生成器,用于生成注释字符串,并在生成的 字符串前加上四个空字节。 这种格式用于传递文本注释作为报文正文。

使用示例

fizzStringBuilder = beginComment();

beginTailString

fun beginTailString():StringBuilder

创建并返回一个空的 字符串生成器,用于生成尾字符串,并在生成的 字符串前加上一个空字节。 这种格式在 NFT 或 Jetton 等各种标准中都有使用。

使用示例

fizzStringBuilder = beginTailString();

beginStringFromBuilder

fun beginStringFromBuilder(b: StringBuilder):StringBuilder

从现有的 字符串生成器 b 创建并返回一个新的 字符串生成器。 当您需要将现有的 字符串序列化为 [单元格][单元格],并加上一些其他数据时非常有用。

使用示例

fizzStringBuilder = beginStringFromBuilder(beginString());

StringBuilder.append

extends mutates fun append(self: StringBuilder, s: String);

用于 StringBuilder的扩展突变函数。

String s 追加到 StringBuilder

使用示例

fizzStringBuilder = beginString();
fizz.append("oh");
fizz.append("my");
fizz.append("Tact!");

StringBuilder.concat

extends fun concat(self: StringBuilder, s: String):StringBuilder

字符串生成器的扩展函数。

字符串 s 连接后,返回一个新的 字符串构造器。 与 StringBuilder.append()不同,可以进行链式操作。

使用示例

fizzStringBuilder = beginString()
.concat("oh")
.concat("my")
.concat("Tact!");

StringBuilder.toString

extends fun toString(self: StringBuilder):String

字符串生成器的扩展函数。

返回从 字符串生成器构建的 字符串

使用示例

fizzStringBuilder = beginString();
let buzzString = fizz.toString();

StringBuilder.toCell

extends fun toCell(self: StringBuilder):Cell

字符串生成器的扩展函数。

返回由 字符串生成器组装的 [单元格][单元格]。

使用示例

fizzStringBuilder = beginString();
let buzzCell = fizz.toCell();

StringBuilder.toSlice

extends fun toSlice(self: StringBuilder):Slice

字符串生成器的扩展函数。

StringBuilder返回一个组装好的 [单元格][单元格] 作为 [][片]。 别名为 self.toCell().asSlice()

使用示例

sStringBuilder = beginString();
let fizzSlice = s.toSlice();
let buzzSlice = s.toCell().asSlice();
fizz == buzz; // true

String.asSlice

extends fun asSlice(self: String):Slice

字符串的扩展函数。

字符串返回一个[][slice],方法是尝试将其所有位打包到一个连续的单元格列表中,每个单元格引用下一个单元格,并为将来的解析打开所有单元格。

请注意,[][片]中没有说明特定字符可能占用多少字节,也没有说明引用列表的深度,因此只有在知道自己在做什么的情况下才能使用该函数。

使用示例

sString = "It's alive!It's alive!!!";
let fizzSlice = s.asSlice();
let buzzSlice = s.asSlice().asString().asSlice();
fizz == buzz; // true, 但要小心,因为并非总是如此。

String.asComment

extends fun asComment(self: String):Cell

字符串的扩展函数。

字符串返回一个[单元格][单元格],在后者的前缀加上四个空字节。 这种格式用于传递文本注释作为报文正文。

使用示例

sString = "When life gives you lemons, call them 'yellow oranges' and sell them for double the price.";
let fizzCell = s.asComment();
let b: StringBuilder = beginComment();
b.append(s);
let buzzCell = b.toCell();
fizz == buzz; // true

String.fromBase64

extends fun fromBase64(self: String):Slice

字符串的扩展函数。

从解码后的 Base64 String 中返回 [][片]。别名为 self.asSlice().fromBase64()

请注意,该函数是有限制的,只能从给定的 字符串 中获取前 10231023 位数据,当 字符串 较大(即包含超过 10231023 位数据)时,不会抛出异常。

如果给定的 String 包含不属于 Base64 集的字符,则会出现退出代码 134异常:“无效参数”。

使用示例

sString = "SGVyZSdzIEpvaG5ueSE=";
let fizzSlice = s.fromBase64();
let buzzSlice = s.asSlice().fromBase64();
fizz == buzz; // true

Slice.asString

extends fun asString(self: Slice):String

[切片][切片]的扩展函数。

字符串返回一个[字符串][片],方法是尝试加载它的所有位,而不查找它的引用(如果有的话)。

请注意,该函数根本不查看引用,而且会将输出截断到 10231023 位,因此只有在知道自己在做什么的情况下才使用它。

使用示例

sString = "Keep your Slices close, but your Strings closer.";
let fizzString = s;
let buzzString = s.asSlice().asString();
fizz == buzz; // true,但要小心,因为并非总是如此。

Slice.fromBase64

extends fun fromBase64(self: Slice):Slice

[切片][切片]的扩展函数。

从解码后的 Base64 [Slice][slice]返回一个新的 [][片]。

请注意,该函数是有限制的,只能从给定的 [][片] 中获取前 10231023 位数据,如果 [][片] 有更多数据(即有任何引用),则不会抛出异常。

如果给定的 Slice包含不属于 Base64 集的字符,将产生退出代码 134异常:“无效参数”。

使用示例

sSlice = "SSBhbSBHcm9vdC4=".asSlice();
let fizzSlice = s.fromBase64();

Int.toString

extends fun toString(self: Int):String

Int的扩展函数。

Int值返回 String

使用示例

fizzString = (84 - 42).toString();

Int.toFloatString

extends fun toFloatString(self: Int, digits: Int):String

Int的扩展函数。

使用小数的定点表示Int值返回String,其中self是数字的有效部分,digits是小数部分的位数。

更确切地说,“digits “是 10digits10^{-\mathrm{digits}} 表达式的指数化参数,它给出了实际 Int值乘以后所代表的小数。 参数 digits 必须在封闭区间内:0<0 < digits <78< 78,否则会出现 exit code 134异常:“无效参数”。

使用示例

let fizzString = (42).toFloatString(9); // "0.000000042"

Int.toCoinsString

extends fun toCoinsString(self: Int):String

Int的扩展函数。

使用小数的定点表示法Int值返回String。 别名为 self.toFloatString(9)

用于用字符串表示 纳米通币 Int值。

使用示例

let nanotonsInt = 42;
let fizzString = nanotons.toCoinsString();
let buzzString = nanotons.toFloatString(9);
fizz == buzz; // true, 两者都存储 "0.000000042"。

地址

extends fun toString(self: Address):String

地址的扩展函数。

地址返回 字符串

使用示例

communityAddress = address("UQDpXLZKrkHsOuE_C1aS69C697wE568vTnqSeRfBXZfvmVOo");
let fizzString = community.toString();