Bashでは、プログラミング言語のどの概念が次の例を示していますか?最初の例でBashのこれらの例では、動的な型定義と静的な型指定がありますか?
、変数
bar
最初 値hello
と文字列型であり、そしてそれは演算式で使用されるときに、 その値は0
なります。だから、私にはbar
の型が文字列から整数に変更されたようです。この例では、(整数の列からコンテキストに従って
bar
の種類を明示的に宣言または定義されていないため、 及び変更) を入力ダイナミック暗黙的型変換と両方の 概念を実証していますか?第2の例で$ bar=hello $ echo $bar hello $ echo $((bar)) 0
、可変
bbb
整数 タイプであると宣言し、私はそれを24
値3*8
を与えています。それから私はそれにhello
を与え、その値は0
に変わります。hello
文字列 値または別の変数?hello
が文字列値の場合、変数bbb
に割り当てる前に、文字列値hello
から整数値0
への型変換が必要です。bbb
の種類を明示的に最初から宣言 あり、変更することはできませんのでは、この例では、コンセプトを入力静的なの を実証していますか? #1について
$ declare -i bbb $ bbb=3*8 $ echo bbb 24 $ bbb=hello $ echo $bbb 0
ありがとうございます。 'x = 3 + 5; y = bar; z = echo $((x + y + z)) 'は' 8'を生成します。どうして「0」と言うのですか? 2. 'x = foo; foo = 6;値 'foo'で停止するのではなく、変数' x'からその値 'foo'まで、そして変数' foo'からその値 '6'までの最後のコマンドトレースをなぜecho $((x))' 'x'の? – Tim
例から 'x = 3 + 5'を削除しました。私はテストで0に拡大したのを見たと思ったが、どこかでミスをした。 'x' /' foo'の例では、展開は再帰的です。拡張が算術コンテキストで文字列を生成するたびに、* stringも展開され、整数値が導出されるまでプロセスが繰り返されます。 – chepner