2017-07-13 4 views
1

私は最近、コードの学習を始めました。配列に変数に変換された文字列を追加することで問題が発生しました。あなたが追加されているので変数を使用して文字列を配列に追加する方法は? Swift

var randomList = [String]() 

func getList(inputList:Array<String>) -> Array<String>{ 

    randomList = inputList 

    return randomList 
} 

func addItem(item: String...) -> String{ 

    randomList.append(item) 

    return "\(item) was added" 
} 

func getItem(x: Int) -> String{ 
    return randomList[x] 
} 
+1

Tあなたがitemの配列をrandomListに追加しようとしているからです。 * item *の型は配列ではなくStringです。だから、* item *をループして、ループされた値を追加してください – kathayatnk

答えて

3

を使用します。次に

func addItem(item: String...) -> String{ 

    randomList.append(contentsOf: item) 

    return "\(item) was added" 
} 

あなたのような1つの以上の文字列を追加することができますこれは:

addItem(item: "Hello", "you", "there") 

結果の配列は次のようになります。

print(randomList) 

[ "こんにちは"、 "あなた"、 "そこ"]


単一の文字列追加するには:

let singleString = "hi" 

addItem(item: singleString) 

への複数の文字列を追加します。

let stringOne = "one" 
let stringTwo = "two" 
let stringThree = "three" 

addItem(item: stringOne, stringTwo, stringThree) 
1

:ここ は、コンソールが言っている:

は、型の値を変換することはできません「[文字列]」期待される引数の型に「文字列」ここ

は私のコードです単一の文字列ではなく文字列の配列。 itemは文字列の配列です。

...を削除して1つの項目を追加することができます。

func addItem(item: String) -> String{ 

    randomList.append(item) 

    return "\(item) was added" 
} 

またはあなたが追加したい場合は、文字列の配列は、ちょうどにあなたのコードを変更randomList.append(contentsOf: item)

func addItem(item: String...) -> String{ 

    randomList.append(contentsOf: item) 

    return "\(item) was added" 
} 
1

配列として扱われるVariadic Parameter(...)を使用しています。

これは、エラーメッセージに表示される内容です。単一の文字列が必要な場合は、文字列の配列を渡しています。

2つの解決策があります。

  1. 変更がStringitem引数:

    func addItem(item: String) -> String{ 
    
  2. は、配列の内容を追加するAPIを使用します。

    randomList.append(contentsOf: item) 
    
関連する問題