更改Julia数组中的值并得到奇怪的结果?

问题描述 投票:0回答:1

我在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].

我是否有办法理解这一点?

julia
1个回答
0
投票

有几件事:

  1. 索引字符串(input_string[i])将为您提供类型为Char的字符。
  2. [更新数组(temp[i] = ...)的内容时,Julia将右侧转换为与数组temp相同的元素类型。
  3. Char(右侧)转换为Int(它是temp的元素类型,将给出对应于该字符的ASCII值。

字符串"200"由字符'2''0''0'组成,其ASCII值为504848,因此我们希望temp[50, 48, 48] BUT循环存在一个错误,因为它应该检查i <= length(input_string),因此从初始化开始,最后一个元素为0

© www.soinside.com 2019 - 2024. All rights reserved.