水晶如何向数组中添加元素?

3
如何在Crystal中向数组添加元素?
我尝试了以下方法:
var = Array(Int32)
var << 42 # error : undefined method '<<'
var += 42 # error : undefined method '+'
var.add(42) # error : undefined method 'add'

我做错了什么? 能否动态添加元素到数组中?
1个回答

9
问题在于您没有初始化该类。var = Array(Int32) 应该是以下之一:
var = Array(Int32).new
# or
var = [] of Int32

然后使用以下方式追加:

var << 42

你当前正在创建一个对 Array 类的引用,然后可以使用它来执行一些类型检查等操作。例如:
ref = Array(Int32)
arr = [] of Int64

puts typeof(arr) == ref # false

嗯,这确实有帮助XD。谢谢^^ - Matthieu Raynaud de Fitte
我正在尝试对TCPSocket对象数组执行此操作,但仍然出现“没有这样的方法append”的错误。 - rakaur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接