回答

收藏

字符串的零是什么?

技术问答 技术问答 273 人阅读 | 0 人回复 | 2023-09-12

    func NewKey(c appengine.Context,kind,stringID string,intID int64,parent *Key) *Key
    + l1 T+ D. M4 u
文档说:1 z" ^, n4 D5 W- j8 Z4 j
NewKey 创建新密钥。类型不能空。stringID 和 intID 之一或两者必须为零。若两者均为零,则返回的密钥不完整。parent  必须是完整的键或 nil。+ S! {8 t2 n0 ^+ q
字符串的零是什么?
( ?. X3 r/ L( {& g9 W4 V/ g* n我试过0and nil,我犯了以下错误:* @' r3 Y- ?) u, c" Y0 ]
    cannot use nil as type string in function argument# i& M4 ?( e0 p: N1 V8 J* `$ z0 ]
               
- P- k/ V8 b, r8 K    解决方案:                                                                0 \' }' T; E0 c8 m
                                                                那是"":
8 r- K! U8 Z. D9 v6 T, H' E  ?6 M
    var s stringfmt.Println(s=="") // prints "true", F2 ~  N! D. u0 C0 m& Z( c" G
字符串不能为零(但是*string可以)。
# m( j) p6 F$ l2 Y- J1 v你可以简单地测试一下+ M! d$ l( t; O6 Y* F* C# G
    if stringId=="" {
    + G5 S8 Z$ K& g1 y  O  {
中传递零字符串stringID,请使用
. u* B; W* ]$ |; v5 @/ v; r
    k := NewKey(c,"kind","",0,p)
    # c; `& x, H/ V; w- ]$ g+ U+ ?
从规范:
& C& g3 a- t' Q4 V- d7 _2 r2 y通过声明或调用 make 或 new 当内存被分配到存储值中,并且没有提供显式初始化时,被默认初始化。该值的每个元素都设置为其类型的零值:布尔值为 false,整数为 0,浮点为 0.0,字符串”“, nil。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则