Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9293

SwiftとC#の書き方比較

$
0
0

はじめに

C#を書くにあたり、「Swiftでいうと・・・これ?:expressionless:」「なんだ、これは?:innocent:」と
かなり困惑したので、比較表を作ろうと思いました。
私自身、初心者なので同じ初心者の方々のお役に立てれば嬉しいです:blush:
:triangular_flag_on_post:記事の内容に関して、勘違いもあると思いますし、これが全てではありません。
  色々な記事を読んで、自らの手をどんどん動かしてみてください!

変数と定数

Swift
//変数varhoge:String="Hello"//定数letfuga:Int=810
C#
//変数stringhoge="Hello";//定数constintfuga=810;
  • ポイント
    • Sfiftでは型名は後 / C#では型名は前
    • C#では文末にセミコロンが必要(初めは忘れがちです:angel_tone2:

型変換(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#は関数名の前が戻り値の型で素直に引数を入れたらよい

さいごに

ざっくりと基本文法の比較を書いてみました。
これはほんの一部に過ぎません(氷山の一角ですらない:innocent:
どんどん検索をして知識を深めていきましょう(私も頑張ります)
この記事が最初の1歩を踏み出す助けになれたら幸いです。
今後はSwiftのことを中心に記事を書いていこうと思うので、よろしくお願いします:v:

参考サイト

Swift 言語ガイド
C# プログラミング ガイド


Viewing all articles
Browse latest Browse all 9293

Trending Articles