2012-10-03 13 views
88
func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key 

ドキュメントは言う:文字列のゼロは何ですか?

にNewKeyが新しいキーを作成します。種類は空ではありません。 stringIDとintIDのいずれか一方または両方がゼロである必要があります。両方がゼロの場合、返されたキー は不完全です。親は完全キーでもなくてもかまいません。

文字列のゼロとは何ですか?

私は0nilを試みたが、私のようなエラーを得た:""

cannot use nil as type string in function argument 

答えて

158

を:

var s string 
fmt.Println(s=="") // prints "true" 

文字列がnilすることはできません(ただし、*stringができます)。

あなたは、単に使用し、

if stringId=="" { 

stringIDにゼロの文字列を渡すためにテストすることができ

k := NewKey(c, "kind", "", 0, p) 

the specificationから:

メモリはどちらか、値を格納するために割り当てられている場合には 宣言またはmakeまたはnewの呼び出し、およびexpなし暗黙の初期化 が提供され、メモリにはデフォルトの初期化が与えられます。これらの値の各 要素は、タイプがゼロの値に設定されます。ブール値の場合は 、整数の場合は0、浮動小数点の場合は0.0、ポインタの場合はの場合は""、ポインタの場合は ポインタ、関数、 、および地図。

+0

あなたの右のジストロイは、問題なく動作します。 – DeanSinaean

+1

@DeanSinaeanこれは答えとしてマークする必要があります – dmportella

4
スクリプトに上記入れる
var str string 
fmt.Println(str == "") 

、そしてそれを実行して行きます。

真のゴランの文字列のデフォルト値は ""です。

0

この場合空の文字列、またはNewIncompleteKey()を使用することができます。