0
在Bash中,以下示例演示了編程語言中的哪些概念?Bash中的這些示例是否演示動態類型和靜態類型?
在第一個例子中,變量是
bar
第一字符串類型與 值hello
,然後,當它在一個算術表達式被使用,其 值變爲0
。所以在我看來,bar
的類型從字符串更改爲整數。這是否示例 (因爲
bar
種類沒有明確地聲明或定義, 和變化根據從字符串的上下文爲整數)表明兩個隱式類型轉換和動態類型的 概念?$ bar=hello $ echo $bar hello $ echo $((bar)) 0
在第二個例子中,可變
bbb
被聲明爲整數 類型,我給它一個值3*8
是24
。然後我給它hello
,它的值更改爲0
。是
hello
一個字符串 值或其他變量?如果hello
是一個字符串值,那麼在將其分配給變量bbb
之前,必須將字符串值hello
轉換爲整數值0
。請問這個例子說明這個概念靜打字的 ,因爲
bbb
類型是明確從一開始就宣稱 ,不能改變?$ declare -i bbb $ bbb=3*8 $ echo bbb 24 $ bbb=hello $ echo $bbb 0
謝謝。 4.'x = 3 + 5; Y =巴; Z =; echo $((x + y + z))'產生'8'。你爲什麼說'0'? 2.'x = foo;富= 6; echo $((x))',爲什麼最後一個命令跟蹤變量'x'到它的值'foo',然後從變量'foo'到它的值'6',而不是停留在'foo'值的'x'? – Tim
我從示例中刪除了'x = 3 + 5';我想我在一次測試中看到擴展到0,但是我在某個地方犯了一個錯誤。關於'x' /'foo'的例子,擴展是遞歸的;每次擴展在算術上下文中產生一個字符串時,*該字符串也被展開,並且該過程重複直到可以導出整數值。 – chepner