cố gắng để có loại Char
dài string
một ký tự. những gì tôi không thể làm là tạo ra một "nhà xây dựng". Tôi biết tôi đang thiếu một cái gì đó hoàn toàn rõ ràng.Trong Go, làm cách nào để tạo một "hàm tạo" cho một kiểu có kiểu chuỗi ký tự?
khai báo kiểu Char
type Char string
có thể sử dụng kiểu đó với một tuyên bố
var c1 Char("abc") var c2 Char = "abc"
đây là sai: c1
và c2
cần phải "a", không phải "abc"
điều tôi thực sự muốn là "hàm tạo" để giới hạn Char thành một ký tự
func Char(s string) Char { var ch string = s[0] return ch }
tất nhiên có type Char
và func Char
không phải là cách để làm điều đó
type.go:8: Char redeclared in this block
là có cách nào cho để buộc type
khởi thông qua một nhà xây dựng? hoặc tôi thậm chí hỏi câu hỏi đúng?
cho phép tôi nói khác: nếu người dùng nói var c Char = "abc"
họ sẽ có giá trị không hợp lệ cho loại Char
- có cách nào để buộc người dùng vào func NewChar(string) Char
làm nhà xây dựng hợp lệ duy nhất của Char
không?
Đó là ngôn ngữ lập trình Go chứ không phải golang. – peterSO
xin lỗi về golang - nghĩ rằng tôi đã nhìn thấy đó là một ref tiêu chuẩn. sự khác biệt giữa goggling cho "go" vs "golang" là rất lớn, do đó, luôn luôn cố gắng đặt cụm từ "golang" như một lịch sự, nhưng mở để gợi ý –
Nếu bạn muốn ép buộc, bạn nên đặt mã của bạn trong một riêng biệt gói, hiển thị giao diện công cộng và một hàm tạo sẽ trả về một cấu trúc riêng để triển khai giao diện. –