29
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Array<Character>をStringに変換するだけでハマってしまったので備忘録

Last updated at Posted at 2014-09-17

文字の配列(Array)を文字列(String)に変換したい…
ただ、それだけのことで、何時間と費やしてしまいました。

同じこと処理を実装したいのに困っている人が(いたら)のために、備忘録として書いておきます。

2014-09-17の投稿からいろいろな方からコメントを頂き、変換方法が増えました。
ご協力頂いた方々ありがとうございます。

extendメソッドで変換する方法

extendメソッドで変換する方法.swift
let sample = Array("Hello, World!")
var str = ""
str.extend(sample)

println(sample)
println(str)

イニシャライザで変換する方法

takabosoftさんに教えて頂きました。
ありがとうございます。

イニシャライザで変換する方法.swift
let sample = Array("Hello, World!")
let str = String(seq: sample)

println(sample)
println(str)

+ Operatorで変換する方法

こちらもtakabosoftさんから教えて頂きました。

let sample = Array("Hello, World!")
let str = "" + sample

println(sample)
println(str)

reduceメソッドで変換する方法

satoshiaさんに教えて頂きました。
ありがとうございます。

reduceメソッドで変換する方法.swift
let sample = Array("Hello, World!")
let str = sample.reduce("") { $0 + String($1) }

println(sample)
println(str)

joinとmapメソッドで変換する方法

dankogaiさんからもコメントで別解を教えて戴きました。ありがとうございます。

joinとmapメソッドで変換する方法.swift
let cs = Array("Hello, World!!")
println(cs)
println("".join(cs.map{String($0)}))

引き続き,xxx.extend についてのドキュメントを探しております。
どこかで見かけた方がいらっしゃいましたら、コメントを頂けると光栄です。
こちらもsatoshiaさんから

Xcodeで定義を追っかけると,extend()はExtensibleCollectionTypeプロトコルで定義されていて,SequenceTypeを引数に取るmutatingな関数のようですね。
詳しいドキュメントはないようですが,機能はこれらの名前の通りかと。

コメント頂いて調べてみたところ、こちらのブログにExtensibleCollectionTypeについて説明が載っていました。

気が向いたら、今回の件を含めて記事を書いてみたいと思います。

29
32
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?