Avatar
花芽尋かすみ 1/18/2019 3:02 AM
こないだ当たった問題なんですけど、これわかる方いらっしゃいますか? extension String { init(decimalStyle int: Int) { let formatter = NumberFormatter() formatter.numberStyle = .decimal self = formatter.string(from: int as NSNumber)! } } let ids = [89902,100238,123289] //ids.map(String.init).joined(separator: ",") // <- String.init(decimalStyle:)が呼ばれてしまう。String.init(decimalStyle:)を指定しないと呼ばれるべきでないのでは? ids.map { String($0) }.joined(separator: ",") // <- こうすれば、回避できる
3:04 AM
ちなみに同じ型の引数を持つやつを追加するとどうなるかなと思って以下を追加してみたら Ambiguous use of 'init' とエラーを返されて「引数ラベル見てないのか...?」となった次第です。これの実行環境はPlaygroundでした。 init(hoge int: Int) { self = String(int) }