我在Julia 1.4.2中具有以下代码
temp = zeros(Int64, length(input_string))
i = 1
while i< length(input_string)
temp[i] = input_string[i]
i += 1
end
使用input_string = "200"
,我希望它返回temp = [2 0 0]
,但由于某种原因,我返回了一个三元素Array {Int64,1},其值为[50, 48, 0].
我是否有办法理解这一点?
有几件事:
input_string[i]
)将为您提供类型为Char
的字符。temp[i] = ...
)的内容时,Julia将右侧转换为与数组temp
相同的元素类型。Char
(右侧)转换为Int
(它是temp
的元素类型,将给出对应于该字符的ASCII值。字符串"200"
由字符'2'
,'0'
和'0'
组成,其ASCII值为50
,48
和48
,因此我们希望temp
为[50, 48, 48]
BUT循环存在一个错误,因为它应该检查i <= length(input_string)
,因此从初始化开始,最后一个元素为0
。