はじめに
C#を書くにあたり、「Swiftでいうと・・・これ?」「なんだ、これは?
」と
かなり困惑したので、比較表を作ろうと思いました。
私自身、初心者なので同じ初心者の方々のお役に立てれば嬉しいです記事の内容に関して、勘違いもあると思いますし、これが全てではありません。
色々な記事を読んで、自らの手をどんどん動かしてみてください!
変数と定数
Swift
//変数varhoge:String="Hello"//定数letfuga:Int=810
C#
//変数stringhoge="Hello";//定数constintfuga=810;
- ポイント
- Sfiftでは型名は後 / C#では型名は前
- C#では文末にセミコロンが必要(初めは忘れがちです
)
型変換(StringとIntで)
Swift
//String → Intvarhoge:String="114"varfuga:Int=Int(hoge)!//Int → Stringvarhoge:Int=514varfuga:String=String(hoge)
C#
//String → Intstringhoge="114";int?fuga=int.Parse(hoge);//Int → Stringinthoge=514;stringfuga=hoge.ToString();
- ポイント
- Swiftは 型(値)
- C#はメソッドを使う(変換する型の組み合わせによっては他のやり方もある)
配列
Swift
//配列の作成varsomeInts:[Int]=[]//要素の追加someInts.append(1)someInts+=[2,3,4,5]print(someInts)//[1,2,3,4,5]
C#
//要素数が可変なリストの作成List<int>someInts=newList<int>();//要素の追加someInts.add(1);//これがC#の配列宣言int[]addInts=newint[]{2,3,4,5};someInts.AddRange(addInts);Console.writeLine(someInts);//[1,2,3,4,5]
- ポイント
- Swiftの配列は要素数が可変
- C#の配列は要素数が固定(Listは可変)
for文
Swift
//昇順処理なのでC#みたいに色々と書かなくてもよいforiin1...5{print(i)//1,2,3,4,5}
C#
//カッコ内で色々と書く//iの開始値は1,iは5まで繰り返す,iはfor文の処理を終えるごとに+1するfor(inti=1;i<=5;i++){Console.WriteLine(i);//1,2,3,4,5}
- ポイント
- Swiftのfor-in文は昇順処理をしてくれるため、簡潔に記載できる(Swift3.x~)
- C#はforのカッコ内で色々と書く必要がある
if文
Swift
varnum:Int=5//カッコなしで書けるifnum==5{print("5だよ")}else{print("5じゃないよ")}// 5だよ
C#
intnum=5;//カッコがいるif(num==3){Console.WriteLine("3だよ");}else{Console.WriteLine("3じゃないよ");}//3じゃないよ
- ポイント
- 書き方はそんなに違いなし!?
関数
Swift
//func 関数名(ラベル 引数名: 型) -> 戻り値の型funcplusWithNum(_num1:Int,_num2:Int)->Int{returnnum1+num2}//ラベルにアンスコを書くことでラベルなしで呼べるplusWithNum(1,5)//6//ちょっと余談//func 関数名(ラベル省略 引数名: 型) -> 戻り値の型funcplusWithNum(num1:Int,num2:Int)->Int{returnnum1+num2}//引数名がラベルになるが、呼び出すときに記述する必要ありplusWithNum(num1:1,num2:5)//6
C#
//戻り値の型 関数名(型 引数名)intplusWithNum(intnum1,intnum2){returnnum1+num2;}//普通に引数の型と同じものを入れたらよい(ラベルとかない)plusWithNum(1,5)//6
- ポイント
- Swiftは「->」の後が戻り値の型で関数を使用するときに引数にはラベルが必要
- C#は関数名の前が戻り値の型で素直に引数を入れたらよい
さいごに
ざっくりと基本文法の比較を書いてみました。
これはほんの一部に過ぎません(氷山の一角ですらない)
どんどん検索をして知識を深めていきましょう(私も頑張ります)
この記事が最初の1歩を踏み出す助けになれたら幸いです。
今後はSwiftのことを中心に記事を書いていこうと思うので、よろしくお願いします