要获取字符串的第一个字符,我可以:
(sc) "asd" first
97
一个整数。
要制作一个字符串,我能找到的唯一方法是:
(sc) USE: strings math.ranges
(sc) "asd" first dup
97
97
(sc) [a,b]
T{ range f 97 1 1 }
(sc) >string
"a"
这似乎有点老套/笨拙。有没有更简洁的方法从字符串中获取一个字符,作为字符串?
要获取字符串的第一个字符,我可以:
(sc) "asd" first
97
一个整数。
要制作一个字符串,我能找到的唯一方法是:
(sc) USE: strings math.ranges
(sc) "asd" first dup
97
97
(sc) [a,b]
T{ range f 97 1 1 }
(sc) >string
"a"
这似乎有点老套/笨拙。有没有更简洁的方法从字符串中获取一个字符,作为字符串?
Factor 区分字符(只是 unicode 代码点,只是整数)和字符串(只是字符序列)。尝试例如:
IN: scratchpad CHAR: A .
65
IN: scratchpad CHAR: Ö .
214
IN: scratchpad CHAR: 字 .
23383
所以你问这个问题可能是对某事有误解的表现。无论如何,要完成您的任务:
IN: scratchpad "Single character from a string" 5 swap nth 1string .
"e"
它抓取第六个字符并将其转换为一个字符长的字符串。