- Rust part8
384 :デフォルトの名無しさん[sage]:2020/04/05(日) 14:13:55.26 ID:8bGOOvBY - >>383
そう
|
- Rust part8
385 :デフォルトの名無しさん[sage]:2020/04/05(日) 14:35:00.95 ID:8bGOOvBY - >>381
大前提として変数や関数の引数や戻り値はコンパイル時にサイズが決まってないといけない Iterator Traitを実装してる型を引数として受け取りたいからといって `pub fn new(iterator: Iterator<…>) -> Self` と書くと Iterator Traitのサイズがコンパイル時にはわからないのでコンパイルエラーになる `let foo: str;`でエラーになるのと同じ Box<dyn Trait>か&dyn Traitの形にすれば Iterator Traitへの参照(=Trait Objectというfatポインタ)になって 受け渡しするサイズが固定されるのでエラーにならない ジェネリクスを使って `pub fn new<T: Iterator<…>>(iterator: T) -> Self` と書いた場合は 実際の呼び出しに使われているTの型ごとにコンパイラがバイナリを生成するので コンパイル時にTのサイズが決まってる (impl Trait使った場合も同じ) >>382も書いてるように前者は動的ディスパッチ、後者は静的ディスパッチなので 異なる型が混在するコレクションを使いたい時やバイナリサイズを小さくしたい時以外は ジェネリクスを選ぶほうが一般的
|
- スレ立てるまでもない質問はここで 152匹目
988 :デフォルトの名無しさん[sage]:2020/04/05(日) 15:51:30.36 ID:8bGOOvBY - >>987
WebフレームワークとWebサーバーは別 自身がWebサーバーとして動くんじゃなく フレームワークを利用して作ったアプリをWebサーバーに乗せて動かしてる 開発用のWebサーバーが同梱されてるものもあるけど本番用には別のものを使う Webフレームワークの設定でWebサーバーのポート指定する箇所があるなら それはそのフレームワークが特定の設定でWebサーバーを起動するコマンド等の機能を持ってるから ルーティングはWebサーバーに届いたリクエストをWebアプリが受け取って リクエストURLの中身を見てアプリケーションのどの機能をキックするかをマッピングしてる ネットワークレベルのルーティングやWebサーバーが持ってるURLとファイルシステムのマッピング機能とは違う
|
- ぶっちゃけ始めるのにいい言語て何?
314 :デフォルトの名無しさん[sage]:2020/04/05(日) 16:18:41.14 ID:8bGOOvBY - >>310
プログラミングの主たる目的は自分の生産活動(特に知的生産活動)を 機械にやらせたり支援させることにあるので 事務の姉ちゃんがExcelマクロでそれを実現できているのであれば その姉ちゃんと同じレベルに速く到達できるに越したことはない 「ゲーム作りたんです〜」っていうやつはその辺履き違えてるから なかなか上達しないやつが多い (印象)
|
- スレ立てるまでもない質問はここで 152匹目
997 :デフォルトの名無しさん[sage]:2020/04/05(日) 22:01:38.75 ID:8bGOOvBY - >>995
Pythonに限って言えば通常の波括弧言語より lexerの処理コストは高いよ
|
- Rust part8
389 :デフォルトの名無しさん[sage]:2020/04/05(日) 22:38:29.83 ID:8bGOOvBY - >>388
他言語なら暗黙的に参照として扱われるようなものも 明示的に&を付けたりBox化することを求めるから厳しく感じるんだと思う 明示的に求めるのはowned/shared/mutableの3つを 一貫性を持って区別して書くようにっていう設計選択じゃないかな >大前提として変数や関数の引数や戻り値はコンパイル時にサイズが決まってないといけない ↑これ他言語でも常識かもしれないけど自分はRustやるまで意識したことなかったよ
|