2017-03-10 30 views
0

私はSpecman EでいくつかのRTLチェッカーを開発しており、型変換を使ってコマンドライン引数を処理しています。次のようにスペルマンの空文字列に演算子をキャスト

コードは

if(get_symbol("SWITCH").as_a(uint) > 10) { 

    do something; 

}; 

コマンドラインオプションのSWITCH = 10を有しています。問題は、エラーのあるスイッチがない場合にテストが失敗することです。

*** Error: Looking for a number but found 'an empty string' 

どうすればこのエラーを回避できますか?キャスト演算子にデフォルト値を与える方法があるので、nullを処理するたびにゼロを返します。まず、文字列がヌルであるかどうかを確認してから、それだけを進めることができます。しかし、余分な行を避けて、as_aで遊ぶことができるかどうかを確認したい。

ありがとうございました。

答えて

1

これは、文字列から数値への変換がどのように機能するかを示します。数値でない場合はエラーとなります。 tryブロックにラップしてエラーをキャッチすることができますが、他の唯一の可能性が空の文字列(他の非数値文字列ではない)であることがわかっている場合は、文字列空です。

0

余分な行がなければこの問題を回避することはできません。

.as_a()stringオブジェクトの関数であるが、SWITCHがコマンドラインで定義されていない場合get_symbol()null文字列を返します。

関連する問題