2014-10-01 18 views
11

Hi Im newbie in golang.Gọi một chức năng từ một gói khác trong Go

Tôi có hai tệp main.go dưới package main và một tệp khác có một số chức năng trong gói được gọi là hàm.

Câu hỏi của tôi là: Làm cách nào để gọi hàm từ package main?

Tập 1: main.go (nằm trong MyProj/main.go)

package main 

import "fmt" 
import "functions" // I dont have problem creating the reference here 

func main(){ 
    c:= functions.getValue() // <---- this is I want to do 
} 

Tập 2: functions.go (nằm trong MyProj/chức năng/functions.go)

package functions 

func getValue() string{ 
    return "Hello from this another package" 
} 

Cảm ơn bạn rất nhiều vì đã giúp đỡ bạn.

+8

Kính gửi người dùng SO: xin vui lòng giải thích downvotes! Nó không giúp bất cứ ai nếu bạn không để lại một bình luận _why_ bạn nghĩ rằng đây là một câu hỏi xấu. – topskip

+5

Bạn phải bắt đầu tên hàm của bạn với tên vốn ('GetValue()') để gọi nó từ bên ngoài. – topskip

Trả lời

15

Bạn import gói bằng con đường nhập khẩu của nó, và tham khảo tất cả những biểu tượng xuất khẩu của nó (những người bắt đầu với một chữ cái viết hoa) thông qua tên gói, như vậy:

import "MyProj/functions" 

functions.GetValue() 
+0

@topskip: cảm ơn, hoàn toàn bỏ qua điều đó;) – JimB

+0

Cảm ơn! PS. Bạn có thể đưa ví dụ về câu hỏi vào đúng biểu mẫu không? –

2
  • Bạn nên tiền tố nhập của bạn trong main.go với: MyProj, bởi vì, thư mục mã nằm trong là tên gói theo mặc định trong Tìm kiếm bạn có đang gọi nó là main hay không. Nó sẽ được đặt tên là MyProj.

  • package main chỉ biểu thị rằng tệp này có lệnh thi hành có chứa func main(). Sau đó, bạn có thể chạy mã này là: go run main.go. Xem here để biết thêm thông tin.

  • Bạn nên đổi tên gói func getValue() trong functions thành func GetValue(), bởi vì, chỉ có cách đó func sẽ hiển thị với các gói khác. Xem here để biết thêm thông tin.

Tập 1: main.go (nằm trong MyProj/main.go)

package main 

import (
    "fmt" 
    "MyProj/functions" 
) 

func main(){ 
    fmt.Println(functions.GetValue()) 
} 

Tập 2: functions.go (nằm trong MyProj/chức năng/functions.go)

package functions 

// `getValue` should be `GetValue` to be exposed to other packages. 
// It should start with a capital letter. 
func GetValue() string{ 
    return "Hello from this another package" 
} 
0

chức năng Export getValue bằng cách làm cho nhân vật 1st vốn tên hàm, getValue

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