我想首先將一個字串分解成字串的串列,并根據一個條件,我想回傳串列中的一個長項。
Func:{[x]
Temp:vs "-" x;
if["AAA" ~ Temp[0]; : "J" $Temp[1]; : "J" $Temp[2]]
}
Func["AAA-809-AXSDF"]
/這個函式回傳809,但是當我做的時候:
809 ~ Func["AAA-809-AXSDF"]
它回傳0b
這意味著它沒有將串列項轉換為長項。請建議
uj5u.com熱心網友回復:
你的代碼中有幾個錯誤:
1:[x]是不必要的
2: vs "-" x 應該是 "-" vs x
3: if["AAA" ~ Temp[0]; : "J"$Temp[1]; : "J"$Temp[2]]這個陳述句如果為真總是回傳 : "J"$Temp[1],: "J"$Temp[2]將永遠不會被執行。我想你需要的是條件性的$運算子
q)func:{"J"$["AAA"~first a:"-"vs x;a 1;a 2]}。
q)809~func["AAA-809-AXSDF"]
1b
q)111~func["AAB-AXSDF-111"]
1b
uj5u.com熱心網友回復:
如果我的邏輯正確,下面的代碼可以解決這個問題:
{x: "-"vs x; "J"$["AAA"~x 0;x 1; x 2]}"AAA-809-AXSDF"
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/325720.html
標籤:
