【グランフロントエンド2016】SESSION3、おのうえさんによる「プログラミング言語Rust」

0
にわタコ @niwatako

Rustのパッケージを管理するCargoというパッケージマネージャがあります。 コメントをドキュメント化してくれる機能、実行、テスト、ベンチマークも決まった書き方をしているとやってくれる。自分のパッケージ配布も可。 #frontkansai

2016-08-28 16:21:38
Masahiko Sakakibara @rdlabo

今日きてる人たちは、黒い画面をどこまで理解してるんだろうかw #frontkansai

2016-08-28 16:22:10
にわタコ @niwatako

IronでWebアプリを作ってみます #frontkansai

2016-08-28 16:22:22
にわタコ @niwatako

Rustの文法をサラッと見ていきましょう 型は厳密な割に推論してくれるのでletで変数を宣言するだけです。 #frontkansai

2016-08-28 16:23:44
Masahiko Sakakibara @rdlabo

この「丁寧に説明してるのに、全員を置き去りにする」感じこそが、おのうえさんの真髄だと思ってる。 #frontkansai

2016-08-28 16:24:01
potato4d/Takuma HANATANI @potato4d

サーバーサイドの話になっていってるしこれは最終フロントエンドで書きたいからRust.js書きました来るのかな(こない) #frontkansai

2016-08-28 16:24:18
▲ / 2024年3月個展 @misumi_takuma

ついていけません。お疲れ様でした #frontkansai

2016-08-28 16:25:00
にわタコ @niwatako

変数はデフォルトでイミュータブルで、宣言した後に値を変更したりすることが出来ません。 let mut xxxxと宣言することで、定義後に入れ替えたり一部変更したりといったことが可能になります。 #frontkansai

2016-08-28 16:25:17
にわタコ @niwatako

これがあることで、変更されたくないオブジェクトを変更しないようにする、ということが出来る #frontkansai

2016-08-28 16:25:19
にわタコ @niwatako

関数の宣言 引数を取る場合は型を明示する必要がある。 戻り値がある場合も型を明示する必要がある。 returnは不要で、最後に評価されたものが返る。 簡単ですね? #frontkansai

2016-08-28 16:26:09
(˘・з・˘) @Chieeeeno

Rustって関数の引数にbitまで指定せなあかんのか・・ #frontkansai

2016-08-28 16:26:19
にわタコ @niwatako

if を式として扱うことが出来る。 let y = x % 3 == 0 {} else if …. #frontkansai

2016-08-28 16:27:02
Masahiko Sakakibara @rdlabo

あー、でもこうやって聞いてるとRust、便利だなぁ。コンパイル言語もいいよね、という気持ちになっていく。 #frontkansai

2016-08-28 16:31:27
armorik83 @armorik83

この資料、かなりまとまってるから後で調べるのに便利っぽい #frontkansai

2016-08-28 16:31:43
にわタコ @niwatako

ここからが強い型付けでなせるRustの本領 #frontkansai

2016-08-28 16:32:04
Masahiko Sakakibara @rdlabo

"from origin"まで縛れるなら、かなり処理の高速化というか実行時コストの削減がされてるんじゃないかなぁ。 #frontkansai

2016-08-28 16:32:37
にわタコ @niwatako

共通処理をSuperClassに実装すると思うが、クラスベースの関数呼び出しは処理が遅い。処理がどこにあるのかコンパイル時に決めることが出来ない。Rustはそれを嫌ってコンパイル時にtraitを使って処理の抽象化を行う #frontkansai

2016-08-28 16:33:03
にわタコ @niwatako

演算子のオーバーロードをtraitベースで可能。 struct Point {} へのAddメソッド実装は impl Add for Point {} #frontkansai

2016-08-28 16:34:04