我已經「繼承」了一些Tcl代碼,雖然我通過一些教程並可以從語言中理解,但是我自己的Tcl構造缺乏某種特定的功能。Tcl:默認如果變量是空的?
例如,我有這樣的代碼:
puts "Column 'name': [ $queryRs getString name ]"
$queryRs
是結果集的SQL查詢。 [ $queryRs getString name ]
構造從結果集的當前行中檢索表列「name」的內容。如果數據庫字段爲NULL,則puts
不會打印任何內容。
我想打印一個「默認」字符串,即如果[ $queryRs getString name ]
沒有任何結果,我想用"--"
替換它。現在
,我可以做這樣的事情:
set nameVar "[ $queryRs getString name ]"
if { [ string length $nameVar ] == 0 } {
set nameVar "--"
}
puts "Column 'name': $nameVar"
但有成爲一個更緊湊的解決方案,這東西可以在線完成添加四行和臨時變量代替。請幫助?
啊......我知道默認參數,但沒有通過這樣的函數建立連接來提供'name'。謝謝,這是我一直在尋找的。 – DevSolar
那麼,這個函數並不是非常必要的 - 只需使用'expr'及其作爲@bmk提供的三元條件運算符即可脫身;一個專門的功能只是使意圖更清晰。 – kostix
是的,但通常比其他方式更容易使定義複雜且使用簡單。 – DevSolar