In Cool§
有关 例程 substr-rw 的主要文档,请参阅 in context
multi method substr-rw(|) is rwmulti substr-rw(|) is rw
将调用者(或在子表单中,第一个参数)强制转换为 Str
,并使用参数调用 Str.substr-rw。
In Allomorph§
有关 方法 substr-rw 的主要文档,请参阅 in context
method substr-rw(Allomorph \SELF: = 0, = Whatever)
在调用者的 Str
值上调用 Str.substr-rw
。
In Str§
有关 方法 substr-rw 的主要文档,请参阅 in context
method substr-rw(, = *)
substr
的一个版本,它返回一个 Proxy
,充当对字符串变量一部分的可写引用。它的第一个参数 $from
指定字符串中应从其进行替换的索引,其最后一个参数 $length
指定要替换的字符数。如果未指定,$length
默认为字符串的长度。
例如,在其方法形式中,如果要获取字符串 "abc"
并用字母 "z"
替换第二个字符(索引为 1),则执行以下操作
my = "abc";.substr-rw(1, 1) = "z";.say; # OUTPUT: «azc»
请注意,也可以插入新字符
my = 'azc';.substr-rw(2, 0) = "-Zorro-"; # insert new characters BEFORE the character at index 2.say; # OUTPUT: «az-Zorro-c»
substr-rw
还有一个函数形式,因此上面的示例也可以这样编写
my = "abc";substr-rw(, 1, 1) = "z";.say; # OUTPUT: «azc»substr-rw(, 2, 0) = "-Zorro-";.say; # OUTPUT: «az-Zorro-c»
还可以为 substr-rw
返回的可写引用创建别名以进行重复操作
my = "A character in the 'Flintstones' is: barney";~~ /(barney)/;my := substr-rw(, $0.from, $0.to-$0.from);.say;# OUTPUT: «A character in the 'Flintstones' is: barney»= "fred";.say;# OUTPUT: «A character in the 'Flintstones' is: fred»= "wilma";.say;# OUTPUT: «A character in the 'Flintstones' is: wilma»