朱莉娅append!()无法将Char类型的对象转换为String类型的对象

时间:2019-05-16 21:35:32

标签: julia

我正在尝试将String添加到数组,如下所示:

arry = String[]
append!(arry, "test")

但出现以下错误:

Cannot `convert` an object of type Char to an object of type String

为什么我添加字符串而不是Char时出现此错误?

(在下面为其他Julia新手的利益张贴我自己的答案-有更多有用提示的人,请跳进来!)

2 个答案:

答案 0 :(得分:3)

我看不到您的答案,但这是一个典型的模式。

您可以 <div class="col-sm-5" (change)="selectChangeHandler($event)" *ngIf="selectedFormeJuridique !== 'other'"> <div ng-class="home">{{selectedFormeJuridique}}</div> <div class="form-group label-floating"> <label class="control-label">Forme juridique</label> <select ng-model="home" name="forme_juridique" class="form-control"> <option disabled="" selected=""></option> <option value="sarl"> SARL</option> <option value="sas"> SAS</option> <option value="eurl"> EURL</option> <option value="sasu"> SASU</option> <option value="ae"> Auto-entrepreneur</option> <option value="sa"> SA</option> <option value="other"> AUTRE</option> </select> </div> </div> <div class="col-sm-2" *ngIf="selectedFormeJuridique === 'other'"> <div class="form-group label-floating"> <label class="control-label">Entrer la forme juridique</label> <input type="text" class="form-control" id="forme_juridique" required> </div> </div> 单个元素或push!集合:

append!

请注意,集合可以是julia> arry = String[] 0-element Array{String,1} julia> push!(arry, "test") 1-element Array{String,1}: "test" julia> append!(arry, ("test",)) 2-element Array{String,1}: "test" "test" julia> append!(arry, ["test"]) 3-element Array{String,1}: "test" "test" "test" julia> append!(arry, Ref("test")) 4-element Array{String,1}: "test" "test" "test" "test" TupleVector(在广播中经常遇到的一种0维且非分配的集合)。

答案 1 :(得分:2)

您应该使用https://11.com/>http://2,2.com/ https://aa.com/>https://www.bb,b.com/>http://www.abcc.org/homePage ,而不是push!()

append!()始终将其参数视为迭代器,而append!()将参数视为单个对象,以将其作为完整单元添加。由于Julia Strings是迭代器(每个字符都以push()!进行迭代),因此您的“ test”字符串将由Char进行Char迭代。由于您将数组指定为String类型,因此Julia对插入数组中的对象执行类型检查。这就是为什么出现错误的原因。

对于那些来自Python的人,Julia的Char与Python的push!()更为接近。

因此,这是Any数组上的两个函数之间的行为差​​异(基本上允许添加任何类型):

append()