- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - phát hiện rò rỉ bộ nhớ Ruby/Ruby on Rails
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
以下关于 Go 包的断言是否准确?
import "package_name"
从名为 package_name 的目录导入所有文件,假设在 $GOPATH 中找到,这是一个保存用户 go 目录的变量,或者在标准的 go 安装目录树中。
package_name 目录中的文件通常会声明 package package_name
。但他们不是必须的。事实上,import "package_name"
也会导入包含行 package foo
的文件(如果在导入的 package_name 目录中找到该文件)。
所有大写的函数都将通过包 package_name 声明中给出的名称访问——例如:
package_name.Function_in_file_that_declares_package_name
hoặc other_than_package_name.Function_in_file_that_declares_other_than_package_name
go install
编辑的。但是,go 将拒绝安装与其内置包目录同名的目录。例如,你不能安装一个字符串目录,因为 go 已经有一个用于内置包“strings”的字符串目录。但是,用户可以通过创建一个 my_strings 目录并在其中放置一个说明 package strings
的文件,将函数附加到 strings 包而无需更改内置的 strings 文件夹。现在,import my_strings
将加载使用 strings.Function_name
访问的额外用户定义的字符串函数。 总而言之,nhập khẩu
关键字用于从给定目录加载文件。关键字 bưu kiện
创建一个命名空间以从该文件外部访问 Capitalized 函数。
我是否正确理解了以上所有内容?
câu trả lời hay nhất
“import”的参数是一个import_path,不是包名。它使从 $GOPATH/src/import_path
中找到的包导出的实体在出现“import”子句的文件范围内可用。
所有 *.go 文件,除了 *_test.go
文件和带有 //+build ignore
的文件,在一个目录中必须说相同的名称在 package name
子句中,否则 go build 系统将拒绝它。
不大写,属于Unicode类Lu。不是功能而是任何 TLD 实体。
不,您可以使用导入路径从任何目录安装任何包。是的,stdlib 中的包具有优先权,不能被“覆盖”。但是,您可以使用例如有效地“替换” stdlib 包。 导入字符串“github.com/foo/mystrings”
。但是,效果仅限于本地/文件。
总而言之,不,导入用于使来自其他包的实体在文件范围内可用。关键字“package”不创建命名空间。 “导入”的效果是文件范围的,请参阅前面的句子,通常导入的实体由限定名称引用。该限定符是一种命名空间,但请注意,不是“导出器”(package foo
)控制它。相反,控件位于“导入器”端:import whatever_local_name "whatever_import_path"
。不过,默认限定符是导入路径的基本名称。
“我们都同意吗?”
完全没有。
关于include - 以下关于 Go 包的断言是否准确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18330184/
Tôi đang sử dụng thư viện biểu đồ cờ vây https://github.com/wcharczuk/go-chart để tạo biểu đồ thanh. Vấn đề tôi gặp phải là giá trị nhãn rất dài và tôi muốn xoay văn bản 45 độ để hiển thị toàn bộ văn bản.
Tôi đang gặp sự cố khi xây dựng một chương trình go rất đơn giản gọi mã c qua cgo. Thiết lập của tôi: $: echo $GOPATH /go $: pwd /go/src/main $: ls ctest.c
Không có nền tảng C và chỉ có trải nghiệm "người mới bắt đầu" với Go, tôi đang cố gắng tìm hiểu xem main.go có thực sự cần thiết hay chỉ là một quy ước. Tôi muốn tạo một API web đơn giản nhưng ai đó có thể làm rõ điều này cho tôi không? Câu trả lời hay nhấtmain.go
Tôi đọc được rằng kể từ Go 1.4, thời gian chạy Go được viết bằng chính Go (chứ không phải bằng C). Làm thế nào điều này có thể xảy ra? Nếu chương trình Go chạy trên thời gian chạy và thời gian chạy là chương trình Go, thì thời gian chạy có chạy trên chính nó không? câu trả lời hay nhất
Đây là ví dụ về mã từ Phạm vi và Đóng của "A Journey with Go": package main import ( "fmt" ) func fibonacci(n int, c chan int
Cho tệp go.mod sau: module foo go 1.12 require ( github.com/bar/baz v1.0.0 github.com/rat/cat v1
Tôi có quy trình CI/CD cần đa nền tảng và hoạt động với nhiều trình ảo hóa khác nhau. Để không phải thay đổi các tác vụ build cho Windows và Linux, tôi nghĩ Go sẽ là một cách hay để viết code một lần và chạy ở mọi nơi. Tuy nhiên, xem xét
Tôi có Dockerfile để biên dịch ứng dụng Go bằng cách sử dụng go build. Tôi đã thực hiện một số nghiên cứu và thực sự nên sử dụng go build cho sản xuất. Nhưng tôi không thể tìm thấy câu trả lời đúng để giải thích tại sao. Tôi hiểu hãy chạy sáng tạo
Tôi đã thử chạy chương trình trong dấu nhắc lệnh #Go lang - nhưng khi tôi gõ lệnh run "go run hello.go" thì tôi khởi động CreateFile hello.go: The system can not fin
Tôi đang học cờ vây bằng cuốn sách "Ngôn ngữ lập trình cờ vây". Chương 1 giới thiệu module os.Open để đọc file. Tôi cố gắng mở tập tin go như hình dưới đây. f, err = os.Open("helloworld.go") Tôi chấp nhận
đóng cửa. Câu hỏi này yêu cầu chi tiết hoặc rõ ràng. Hiện tại nó không chấp nhận câu trả lời. Bạn muốn cải thiện câu hỏi này? Thêm chi tiết và làm rõ câu hỏi bằng cách chỉnh sửa bài đăng này Đã đóng 2 năm trước. Cải thiện điều này
Để giải quyết một số hiểu lầm của tôi về goroutines, tôi đã đến sân chơi Go và chạy mã này: package main import ("fmt") func other(done cha
Câu hỏi này đã có câu trả lời ở đây: Đánh giá/Thực thi mã/biểu thức Golang như js' eval() (5 câu trả lời) Đã đóng 1 năm trước. Đối với bất kỳ chương trình cờ vây nào, tôi muốn
Đây là mã của tôi về cơ bản cố gắng in điểm chuẩn từ một đường dẫn. Điều này có nghĩa là nếu người dùng nhập "/some/random/path.java" thì đầu ra sẽ là "path". Tương tự, nếu người dùng đối số là "/another/myapp.c", thì hãy nhập
$ go version 1.13.3 Cấu trúc thư mục của mình như sau: GOPATH +---src +--- my-api-server +--- my-auth-server
Câu hỏi này đã có câu trả lời ở đây: Cách nhúng tệp để sử dụng thực thi phân tích cú pháp sau này (4 câu trả lời) Cách tốt nhất để bun là gì
Tôi nghĩ điều này hơi lạ, tại sao mã này không hoạt động? package main import "fmt" func main() { var i, j int = 1, 2 k
Tệp thực thi được lưu trữ ở đâu sau khi trình biên dịch go thực thi lệnh sau? $> go run file.go Câu trả lời hay nhất nằm trong thư mục /tmp nếu bạn đang sử dụng máy unix. Nếu bạn đang sử dụng Windows, trong \Us
Tôi hiện đang bắt đầu với Go và đã nghiên cứu kỹ các vấn đề liên quan đến việc đặt tên gói và cấu trúc thư mục không gian làm việc. Tuy nhiên, tôi không chắc chắn về cách tổ chức mã của mình đúng cách theo mô hình Go. Đây là một ví dụ về cấu trúc hiện tại của tôi, nằm ở $GOPATH/src:
Giả sử tôi có một chương trình Lua chấp nhận đầu vào của người dùng và đầu vào đó là mã nguồn Lua hợp lệ. Điều này được làm sạch, biên dịch và thực thi trong khi chương trình vẫn đang chạy. Liệu Go (hoặc nó sẽ) có thực hiện được điều đó không? Câu trả lời hay nhất tôi nghĩ có đủ giữa hai dự án sau
Tôi là một lập trình viên xuất sắc, rất giỏi!