Số không cho chuỗi là gì?


133
func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key

Các tài liệu nói:

NewKey tạo một khóa mới. loại không thể để trống. Một hoặc cả hai chuỗiID và intID phải bằng không . Nếu cả hai đều bằng 0, khóa trả về không đầy đủ. cha mẹ phải là một khóa hoàn chỉnh hoặc không.

Số không cho chuỗi là gì?

Tôi đã thử 0nil, tôi đã nhận được các lỗi như:

cannot use nil as type string in function argument

Câu trả lời:


226

Đó là "":

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

Một chuỗi không thể là con số không (nhưng *stringcó thể).

Bạn chỉ có thể kiểm tra

if stringId=="" {

Để truyền chuỗi không vào stringID, sử dụng

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

Từ đặc điểm kỹ thuật :

Khi bộ nhớ được phân bổ để lưu trữ một giá trị, thông qua khai báo hoặc lệnh gọi thực hiện hoặc mới và không được cung cấp khởi tạo rõ ràng, bộ nhớ được cung cấp một khởi tạo mặc định. Mỗi phần tử của một giá trị như vậy được đặt thành giá trị 0 cho loại của nó: false cho booleans, 0 cho số nguyên, 0,0 cho số float, "" cho chuỗi và nil cho con trỏ, hàm, giao diện, lát, kênh và bản đồ.


Một thử nghiệm đơn giản cho chuỗi giá trị 0 và chuỗi * chuỗi: var s; fmt.Println (s == "", * new (* chuỗi) == nil)
Tom J

0

trong trường hợp này là chuỗi rỗng hoặc bạn có thể sử dụng NewIncompleteKey ()

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.