2013-07-16 30 views
5

Tôi cam qua một số mã ngày hôm nay khiến tôi ngạc nhiên với 'bản in' không được xác định. Sau một chút chơi, tôi đã xác định rằng bạn chỉ có thể sử dụng một bản in để đưa mọi thứ vào bảng điều khiểngo có tích hợp chức năng "in" không?

ví dụ:

print("Hello World") 

Vì vậy, nó có vẻ là một số loại dựng sẵn nhưng tôi không thể tìm thấy bất kỳ tham chiếu đến nó (và tôi nghĩ rằng các quy tắc đi là chức năng thường không bao giờ nhập khẩu anyway)

Đây có phải là nổi tiếng và nếu vì vậy có những chức năng tiện lợi khác hoặc tôi chỉ rất, rất bối rối?

Một điểm khác - bản in này không sử dụng các thủ thuật định dạng ma thuật (% v) của fmt.Printf - Nếu bạn in bản đồ hoặc cấu trúc, bạn dường như nhận được địa chỉ của chúng.

Trả lời

8

Bạn đã đúng và người khác đã khiếu nại về điều đó. Nó được thêm vào tài liệu dựng sẵn cho bản phát hành Go tiếp theo (go1.2).

Package builtin

func print

func print(args ...Type) 

Các print tích hợp chức năng định dạng đối số của nó một cách thực hiện cụ thể và Viết kết quả sai số chuẩn. In hữu ích để khởi động và gỡ lỗi; nó không được bảo đảm để giữ ngôn ngữ.

func println

func println(args ...Type) 

Các println tích hợp chức năng định dạng đối số của nó một cách thực hiện cụ thể và Viết kết quả sai số chuẩn. Dấu cách luôn được thêm giữa các đối số và một dòng mới được nối thêm. Println hữu ích cho việc khởi động và gỡ lỗi; không phải là số được bảo đảm bằng ngôn ngữ.

+0

Tuyệt vời! Trong khi đó bạn có thể khai báo 'const print: = fmt.Println' –

+3

@ColonelPanic:' const print: = fmt.Println' là một lỗi trình biên dịch. 'fmt.Println' không phải là hằng số. Viết 'var print = fmt.Println' hoặc' print: = fmt.Println'. – peterSO

+0

'print' và' println' đã có trong Go ngay từ đầu. Chúng được định nghĩa trong đặc tả ngôn ngữ. – user102008

0

Cảm ơn tất cả các phản ứng nhanh chóng

gì ném tôi ra là gói 'BUILTIN' không xác định in (trong phiên bản tôi đang sử dụng anyway)

Nó có vẻ như một tính năng nguy hiểm để phụ thuộc nói chung vì vậy tôi sẽ giả vờ tôi không bao giờ nhìn thấy nó và tiếp tục fmt.Print ....

+0

Chúng không cần phải được xác định trong một số gói.Chúng được định nghĩa trong đặc tả ngôn ngữ. – user102008

Các vấn đề liên quan