Swift基本文法

5917 ワード

一.Swift概要
Swiftは2010年から開発を開始し、2014年のアップルWWTCで発表されました.Swift 1.0.2015年のアップルWWDCでSwift 2.0のオープンソースを言って、今までSwift 3.0に達しました.Swiftのオープンソースのため、GoogleはSwift言語を使ってAndroid端末プログラムの開発を行うことを考えています.言語の実行は可能です.http://www.tiobe.com 参考にする
二.変数と定数を宣言する
Swiftで変数を宣言するときは、変数の型を決める必要はありません.システムは開発者が入力するタイプによって変数の基本型に合致します.変数はvarキーワードを使って修飾します.例えば、
var int_var = 1;
定数は、letキーワードを使って修飾します.例えば、
let a = "Carson";
Swiftでは";"を追加できます.Swiftでは文字列の関数:
var string_var = "This is";
//      
string_var += "Carson";
//          
string_var.removeAtIndex(string_var.startIndex.advancedBy(2));
//         
string_var.insert("C", atIndex: string_var.startIndex.advancedBy(2));
//          
string_var.insertContentsOf("ABCD".characters, at: string_var.startIndex.advancedBy(7));
注意:Swiftには暗黙的な変換は存在しません.すなわち、低精度変数は直接的に高精度に値を割り当てることができません.強制的なタイプの変換が必要です.Swiftの重さの強制タイプの変換が必要です.
var int_var = 23;
var double_var = Double(int_var);
//          
string_var.isEmpty;//  bool  ,true false   
var int_value = 12;
print("\(int_value)"); // Swift      
三.配列と辞書
Swiftでは変数宣言を使用する配列は可変配列であり、可変配列は存在しません.また、配列初期化の際に、配列中の要素の種類を指定できます.または、配列中の要素の種類を指定せずに、任意に配列中に各種の要素を保存できます.Swiftの配列使用ソース:
//          
var array_var_1 = ["haha",23,"haha",true,23.0];
//          :     
var array_var_2:Array = Array();
//     
var array_var_3 = [1,2,3,2,1,12,23,12,3];
//     
var array_var_4 = array_var_3.sort();
//      
array_var_3.maxElement();
//      
array_var_3.minElement();
Swiftの辞書はPHPの辞書と似ています.キーとして正しいです.配列の対象に直接値を割り当てると完成できます.Swiftの辞書はソースコードを使います.
//        -   
var dictionary_var_1 = ["name":"Carson","age":23,"gender":"Male"];
//        -   
var dictionary_var_2:Dictionary = ["name":"Carson"];
//      
dictionary_var_2["gender"] = "Male";
//          
dictionary_var_2.removeValueForKey("gender");
//               
dictionary_var_2.removeAtIndex(dictionary_var_2.indexForKey("gender")!);
元のグループ
元のグループはSwiftの中で独自のデータ形式で、複数の値を返すことができるデータ形式です.声明の時に「()」を使って宣言します.元のグループの要素は下のタグを通してアクセスできます.キーを通してアクセスすることもできます.
//              "" 
//             
var status_1 = (name:"Carson",gender:23);
//          
var status_2:(name:String,gender:Int) = ("Leo",23);
//       (   )
print(status_1.name);
// (    )
print(status_1.0);
タプルには、配列辞書などの種類が保存されます.
五.循環構造
Swiftの中の循環構造は3種類があります.それぞれrepeat-while、while、forの3つの構造です.repeat-while構造は他の言語のdo-while構造と一致しています.循環出力は1~100例のソースコードです.
// repeat-while  
var i = 1;
repeat {
    print(i);
    i++;
} while(i < 101);
// while  
var j = 1;
while (j < 101) {
    print(j);
    j++;
}
//   for  
for (var i = 1; i < 101; i++) {
    print(i);
}
// for in  ...     ..
拡張内容は、for-i nを用いて配列を巡回し、辞書はその中の要素を取得する.
// for-in     
var array = ["haha",23,"haha",true,23.0];
for s in array {
    print(s);
}
// for-in     
var dictionary = ["Name":"Carson","Gender":"Male"];
for (key,value) in dictionary {
    print(key,value);
}
六.分岐構造
Swiftの中の分岐構造は他の言語と同じで、ifとif-elseの構造もあり、switch-case構造もあります.if-else構造例のソースコード:
//          ,        ,         .
var string_var = "ABCDEFG";
if (string_var.isEmpty) {
    print("is null!");
} else {
    print(string_var);
}
switch-case構造例のソースコード:注意:Swiftではcase():のパラメータは文字列として認識されています.または表式の種類です.Intタイプに限らず、制約条件を使う時はSQL文に類似したキーワードwhereを使用します.また、Swiftではbreakキーを追加する必要はなく、デフォルトでキーワードbreakを追加しました.breakを削除したい場合は、breakキーワードの状態になります.コード順を実行するには、言語で提供されるfallthroughキーが必要です.
//     10        ,  switch-case         ,        
var array_int_var:Array = Array();
var count = 10;
for (var i = 0; i < count; i++) {
    array_int_var.append(random() % 100 + 1);
}
for s in array_int_var {
    switch (s) {
    case 1 ... 30:
        print(s," [1,30]    ");
        fallthrough;
    case s where s % 2 == 0:
        print(s,"   !");
    case s where s % 2 != 0:
        print(s,"   !");
    default:
    print("  ");
    }
}
七.列挙
C言語では、エニュメレート・タイプは、全体の値に対応するエニュメレート・ネームであり、Swiftでは、個々のエニュメレート・タイプに決定された値を与える必要はなく、与えられた値は、整数値に限らず、文字列、文字、浮動小数点などでもよい.ソース例:
// enum (    ):(     ) { case (    ) = (   ) }
enum Direction:String {
    case East = " "
    case West = " "
    case North = " "
    case South = " "
}
//        (                ,  .rawValue    ,.hashValue         index)
print(Direction.South.hashValue);
八.関数
Swiftの関数もC言語と同じで、四つの関数に分けられています.戻り値なしのパラメータ、戻り値なしのパラメータ、戻り値なしのパラメータ、戻り値ありのパラメータ、戻り値ありのパラメータ、関数ありの定義が必要です.ソース例:
//        
func method_1() -> Void {
    print("      ,      !");
}
//     
method_1();
//        
func method_2(s:String) -> Void {
    print(s);
}
//     
method_2("      ,      !");
//        
func method_3() -> (String) {
    return "      ,      !";
}
//     
print(method_3());
//        
func method_4(s:String) -> (String) {
    return s + "   !";
}
//     
print(method_4("      ,      !"));
Swiftでは関数がネストされています.他の言語とは違って、内部の関数がネストされています.その作用範囲は外部関数のみです.ソースの例:
func outMethod() -> Void {
    func inMethod() -> Void {
        print("      !");
    }
    print("      !");
    //       
    inMethod();
}
//       
outMethod();
関数を使用して参加値を修正する場合、キーワードinoutを使って、間もなく参加する住所をパラメータとして関数に伝達し、演算を行います.ソース例:
//        , a     20;
var a = 10;
func add(inout b:Int) -> Void {
    b += 10;
}
//     
add(&a);
print(a);