2016-10-22 7 views
8

Swift 3では、String構造には、IntからStringへの変換を可能にする初期化子init(_: Int)がないようです。私の質問はlet i = String(3)がなぜ機能するのですか?何がStringメソッドまたはイニシャライザと呼ばれていますか?ありがとう。Swift 3をIntからStringに変換する

答えて

9

Stringクラスの引数は、init(_:)(またはinit(_:)UnsignedInteger)です。

むしろよりIntInt64Int32Int16Int8UIntUInt64UInt32UInt16、およびUInt8に別々の初期化子を定義し、アップルは一般的な2つの初期化子製:SignedIntegerの種類の一つであり、UnsignedIntegerタイプのための1つを。

スウィフト3上の文字列にオプションの整数に変換したい人のため
let text = "\(myInt)" 
29

誰かに、ありがとう、その人に、私は誰を覚えていない。例えば

infix operator ???: NilCoalescingPrecedence 

public func ???<T>(optional: T?, defaultValue: @autoclosure() -> String) -> String { 
    switch optional { 
    case let value?: return String(describing: value) 
    case nil: return defaultValue() 
    } 
} 

let text = "\(yourInteger ??? "0")" 
+0

あなたの応答は、 –

+3

コメントに同意の質問に対応していませんでしたが、これは私があなた – Josh

+0

おかげで探していたもので私を助けました!!!! –

5

String(describing:YourInteger ?? 0) 
+1

スウィフトコンパイラでは、私ではなく記述に切り替えることができました!私じゃない! – satheeshwaran

0

私はこのソリューションを見た:ちょうどスウィフト3に文字列にint型に変換するためにお探しの方のために

+0

それを実装する方法を詳しく教えてください...お願いしますか? –

+0

私はUtilsView.swiftを持っています。このライブラリでは、私はすべてのプロジェクトで使用する他の機能を持っています。関数は、中置演算子??? NilCoalescingPrecedence public func ??? (オプション:T?はdefaultValue:@autoclosure() - >文字列) - >文字列{ スイッチオプション{ 場合は値(記述:値)文字列を返す?:せ 場合ゼロ:はdefaultValue() } を返します} – Mercedes

関連する問題