在SwiftUI中,如何使用ForEach遍历字符串中的每个字符?
例如
let some_string = "A⍺甲あ"
VStack {
ForEach(....) {....
Text(String(character_in_the_string))
}
}
输出
A
⍺
甲
あ
答案 0 :(得分:2)
MERGE into History_tbl AS tgt
USING (select * from #prev_month) AS src
ON tgt.Month = src.Month
WHEN MATCHED THEN
tgt.number = src.number
WHEN NOT MATCHED THEN
INSERT (Month, number)
VALUES (src.Month, src.number);
要求传递给它的值必须符合ForEach
。 RandomAccessCollection
是String
,可以通过将其变成Sequence
来变成RandomAccessCollection
。
使用Array
将字符串转换为Array()
:
[Character]
通常,您应该小心选择唯一的VStack {
ForEach(Array(some_string), id: \.self) { character in
Text(String(character))
}
}
。由于id
可能包含重复的字符,因此您可以使用some_string
将每个.enumerated()
变成一对Character
(其中(offset, element)
是它在{{ 1}})。然后使用offset
作为String
和.offset
从元组对中检索id
:
.element
这很重要,例如,如果您要动画从字符串中删除字符。如果将字符用作Character
,则如果连续列出多个相同的字符,SwiftUI可能会选择错误的字符进行动画处理。