>らでんさんは手持ち無沙汰で吸う人なのかな。
自制できるらしい いまは禁煙しています
>こんな子?
Adoさんの口からBABYMETALの話は聞いたことないね
>御本人は ショートヘアー のイメージがありました。
むかしはショートボブっぽいスタイルだったと思う
近頃はシルエットをみるにロングヘアーのようだけど
イラストのイメージに合せてエクステ、
あるいはウィッグをかぶってる可能性は否定できない
>コードが大きくなると起動時にモッサリしないのかな。
逐次コンパイルするので、全体のコード量は関係ありません
コンパイル時にオーバーヘッドはあるでしょうが微々たるものです
純粋なインタプリタで動作するCPythonはめちゃめちゃ遅い
PyPyというJITコンパイラもありますが互換性に問題があるらしい
>マスターするといろんな恩恵が得られるのでしょうね。
VSCodeの機能が優秀すぎるのです
Node.jsやパッケージマネージャをインストールしてしまえば
もはや統合開発環境と言っても過言ではないほど
ふつうのテキストエディタを使っていると
JSDocでわざわざコメントを書いても大した恩恵は得られません
人が読んで型を把握しやすくはなりますが面倒くさいだけです
T.Umezawaさんは静的型付けだろうが何だろうが秀丸使いで
静的型チェックも、補完機能もまったく使わずに打ち込んで
ビルドしてみてエラーがでたら訂正する、という猛者ですが
ふつうの人には趣味であってもVSCodeの使用を強く薦めます
>アノが「マゾヒスティックな快感を得るために」
やはりインテリセンスが機能するのは快感ではありますが
値を特定できない any ばかり並ぶと罪悪感を覚えます
VSCodeには、変数や関数にマウスオーバーすると、
それがどんな型なのか、どんな引数を取りうるのか、
どんな値を返すのか、明示してくれる機能があります
そこに any が並ぶのをどうにかしたくなるのです
多くのばあい変数や戻り値は型を明示しなくても推論されますが、
デフォルト値のない引数は明示しないとすべて any になります
----
http://ken4.s184.xrea.com/x/up/img/3807.png
canvas2D() は私がつくった関数です
第1引数の arg は、文字列あるいは null をとり、
w? と h? は省略可能な数値型で、幅と高さの指定です
argが文字列ならそのidで文書上のcanvas要素を取得、
nullのばあいはオフスクリーンのキャンバスを生成します
wとhを省略したばあいはcanvas要素のwidth, height属性、
それらが無指定ならデフォルト値の300×150になります
hのみを省略したばあいはwと同じになり正方形になります
戻り値はオブジェクトであり、
canvas要素とそのコンテクスト、幅と高さを返します
さらに vals は同様の値を配列で返します
ここではctxプロパティでコンテクストだけ得ていますが
分割代入で必要な値をまとめて宣言できるのがポイントです
const {cvs,ctx,w,h}= canvas2D('canvas', 400, 300);
// valsの配列から分割代入すると別名に変更できる
const [,OffCtx]= canvas2D(null, 400, 300).vals;
// まあ、このように書いても同じではありますが
const {ctx:OffCtx}= canvas2D(null, 400, 300);
----
canvas2D() という関数をつくったのは
通常のDOM APIでキャンバスの取得/設定を行うと
複数行にわたって面倒くさかったからです
const canvas = document.getElementById("canvas");
canvas.width = 400;
canvas.height = 300;
const ctx = canvas.getContext("2d");
>その「厳密チェック」についてはよくわかりません
静的型チェックというのは、ビルドや実行するまえに
ここの変数、引数、戻り値の型が一致してないよ、と指摘する機能です
型が合ってない値を代入しようとしたり、
型が合ってない値を関数に渡そうとすると、即座に赤ペンが入ります
存在しないプロパティ、メソッドを参照しようとしても指摘されます
nullという値は、その対象が“ない”ことを示す値です
undefined は、配列の領域外を参照したり、辞書のキーとひもづいた値が
定義されておらず“未定義”だったばあいなどに返される値です
変数や戻り値がnull許容型だったり、undefined になりうるときは
if文でnullチェックして早期リターンしたり、特定の型だけに絞ったり、
型を推論できる制御構造なり、null安全な式を組む必要があります
---
http://ken4.s184.xrea.com/x/up/img/3806.png
1枚目は、変数 `count` の宣言で0を代入しているので
これはnumber型であると推論されていますが、
文字列'foo'を再代入しているため、問題ありと指摘されます
2枚目のtoメソッドは文字列を受けとりますが、
それは決めれらたキーワードを列挙したStateType型であるため
それに含まれない `Titl` は型が一致していないと指摘されます
3枚目は、toメソッドの引数に値を書き込もうとしたときに
StateType型のすべての値が選択候補として提示されています
>ちなみに、この場合は「づらい」が正解のようですね。
これは単体で使えるから「づらい」のままにしたわけです
まあ、ふつうに考えれば「辛い」から来てると推論できますが
AIには「からい」のか「つらい」のか判断するのが難しい
「難い」が「がたい」なのか「にくい」なのかはどうちらでも
似たような意味だけど、びみょうにニュアンスが異なります
「むずかしい」は「むつかしい」が濁ったものだから、
「むづかしい」であるはずなのに「むずかしい」と書けと言う