摘自使用手冊
jq 支援和 JSON 相同的一組資料型態:數字、字串、布林值、陣列、物件(用 JSON 的說法,就是只有字串鍵的雜湊),以及「null」。
我們把焦點放在數字上。
所有數字,不論是不是整數,都是 IEEE754 雙精度浮點數。 這讓我們只有 53 位元的精度。
數字可以搭配一般常用的運算子:
算術:+、-、*、/、%
比較:==、!=、<、<=、>=、>
標準數學函式
只有一個輸入的函式,可以用管線把值傳進函式
$ jq -n '(1 | atan) * 4'
3.141592653589793
需要兩個輸入的函式會忽略輸入,改以參數接收這兩個輸入(回想一下,參數之間是以分號分隔)
$ jq -n 'pow(2; 10)'
1024
分號是函式引數的分隔符,不是逗號。
jq運算式要解這道練習,你需要認識條件運算式。
jq使用if-then-else運算式來處理條件運算式。
作為一個_運算式_,它會被放在管線裡。
語法是:if CONDITION then TRUE_EXPR else FALSE_EXPR end。
else子句是選用的。
42 | if . < 33 then "small" else "larger" end
# => "larger"
其他條件用elif
42 | if . < 33 then "small"
elif . < 67 then "medium"
else "large"
end
# => "medium"
在這個練習中,你會寫程式來分析汽車工廠組裝線的生產狀況。
組裝線的速度範圍可以從0(停止)到10(最高速)。
在最慢的速度(1)下,每小時可生產221輛車。
生產量會隨著速度呈線性成長。
所以當速度設為4時,每小時應該生產4 * 221 = 884輛車。
不過,速度越快,生產出瑕疵車的可能性就越高,這些瑕疵車之後必須被丟棄。
以下列表說明速度如何影響成功率:
1到4:成功率 100%。5到8:成功率 90%。9:成功率 80%。10:成功率 77%。這個練習有兩個任務。
計算組裝線每小時的生產速率,並把成功率納入考量。
計算每分鐘能生產出多少完成且可正常運作的汽車。