:それだけArray<String>
で動作しますそして、あなたのコードがどうあるべき
extension Array where Element == String {
/// Returns a new string by concatenating the elements of the sequence,
/// adding the given separator between each element.
///
/// The following example shows how an array of strings can be joined to a
/// single, comma-separated string:
///
/// let cast = ["Vivien", "Marlon", "Kim", "Karl"]
/// let list = cast.joined(separator: ", ")
/// print(list)
/// // Prints "Vivien, Marlon, Kim, Karl"
///
/// - Parameter separator: A string to insert between each of the elements
/// in this sequence. The default separator is an empty string.
/// - Returns: A single, concatenated string.
public func joined(separator: String = default) -> String
}
: `Any`型であるX '`の
func arrayToString (_ x:Array<String>) -> String {
let y = x.joined(separator: "")
return y
}
arrayToString(["abc", "123"]) //"abc123"
要素、実行時にいくつかのAPIから 'Any'オブジェクトが供給されて強制的に使用されない限り、避けたいタイプです。 'x'を代わりに' String'インスタンスの配列にするオプションはありますか? ( '[String]')。また、あなたは戻り値の型をあなたの関数に与えていないので、 'Void'(これは' - > String'としたい)と推測されます。 'x'が' [Any] 'である場合、' joined(separator:) 'を呼び出す前に' x'の各要素を 'String'に型変換しようとする必要があります。 'return x.flatMap {$ 0 as? String} .joined(セパレータ: "") '。 – dfri