例如,我想轉成"hello"
或list(104, 101, 108, 108, 111)
list("h", "e", "l", "l", "o")
如何將字符串轉換爲Io中的列表?
到目前爲止,我已經創建了一個空的列表,使用foreach
和每一個項目追加到列表自己,但是這不是真的做了簡明的方法它。
例如,我想轉成"hello"
或list(104, 101, 108, 108, 111)
list("h", "e", "l", "l", "o")
如何將字符串轉換爲Io中的列表?
到目前爲止,我已經創建了一個空的列表,使用foreach
和每一個項目追加到列表自己,但是這不是真的做了簡明的方法它。
一種方法是使用正則表達式插件:
#!/usr/bin/env io
Regex
myList := "hello" allMatchesOfRegex(".") map (at(0))
但我敢肯定還必須有其他(甚至更好!)的方式。
更新 - 重新:我的評論有問題。在Sequence對象中創建一些東西會很好。對於如:
Sequence asList := method (
Regex
self allMatchesOfRegex(".") map (at(0))
)
# now its just
myList := "hello" asList
我自己的建議:
Sequence asList := method(
result := list()
self foreach(x,
result append(x)
)
)
沒有測試它的性能,明智的,但避免了正則表達式應該考慮的東西。
另一個很好的簡潔,但仍不幸比foreach
解決慢是:
Sequence asList := method (
Range 0 to(self size - 1) map (v, self at(v) asCharacter)
)
你** **真的不想知道你有什麼要經過一個字符串轉換爲在一個列表HEL-語言。 ;-) – 2010-11-23 10:37:58
大聲笑..如果我曾經創建一個相當嚴肅的編程語言,我保證將其命名爲Hel :) – Jakob 2010-11-23 10:44:04
偏離主題,但與Io有關的問題在這裏。我回滾了你最近做過的標記編輯,因爲`iolanguage`是Io的標準標記。 – draegtun 2010-11-23 12:30:26