内容简介:一般go的项目中用文件夹区分一个模块和功能。一个文件夹可看作一个包,同一个文件夹下的多个文件一般都放在同一个包下。mian.gotestMysqlOp.go
一般 go 的项目中用文件夹区分一个模块和功能。一个文件夹可看作一个包,同一个文件夹下的多个文件一般都放在同一个包下。
mian.go
package main import "testPrint" import "fmt" func main(){ //测试helloword fmt.Println("我的第一个mac上的go程序") //测试数据库连接 testMysqlConnect() //测试调用webservice testPostWebservice() //测试另一个文件夹中的方法 testPrint.ShowPrint() }
testMysqlOp.go
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func checkErr(err error){ if err!=nil{ panic(err) } } func main(){ //fmt.Println("我的第一个mac上的go程序") db,err:=sql.Open("mysql", "用户名:密码@tcp(127.0.0.1:3306)/mysql?charset=utf8") checkErr(err) stmt,err:=db.Prepare("select name,age,address from yys_person_info where 1=1") checkErr(err) rows ,err :=stmt.Query() checkErr(err) for rows.Next() { var name string var age string var address string err :=rows.Scan(&name,&age,&address) checkErr(err) fmt.Println(name,age,address) } defer db.Close() defer stmt.Close() defer rows.Close() }
testWebserviceOP.go
package main import ( "fmt" "net/http" "io/ioutil" "bytes" "unsafe" ) func checkErr(err error){ if err!=nil{ panic(err) } } func main(){ //测试调用webservice paras :="<paraName1>hhhh</paraName1 >"+ "<paraName2>kkkk</paraName2>"+ "<paraName3>TY</paraName3>"+ "<paraName4>1</paraName4>" postStr := GenSOAPXml("http://tempuri.org/", "MethodName", paras) PostWebService("http://ganmane.com/hehe/wodishen.asmx", "MethodName", postStr) } func PostWebService(url string, method string, value string) string { res, err := http.Post(url, "text/xml; charset=utf-8", bytes.NewBuffer([]byte(value))) //错误日志 if err != nil { fmt.Println("post error", err) } data, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println("read error", err) } res.Body.Close() fmt.Printf("result----%s", data) str :=(*string)(unsafe.Pointer(&data)) return *str } func GenSOAPXml(nameSpace string, methodName string, valueStr string) string { soapBody := `<?xml version="1.0" encoding="utf-16"?>` soapBody += `<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">` soapBody += " <soap:Body>" soapBody += "<" + methodName + " xmlns=\"" + nameSpace + "\">" //以下是具体参数 soapBody += valueStr soapBody += "</" + methodName + "> </soap:Body></soap:Envelope>" fmt.Println(soapBody) return soapBody }
上面几个文件都在main文件夹下,包名也是main。
于是,新建一个文件夹testPrint,新建文件
myPrint.go
package testPrint import "fmt" func ShowPrint() { fmt.Println("包testPrint下的打印方法") }
在main.go中引用如下
import "testPrint"
调用格式:testPrint.ShowPrint()
这里需要注意,myPrint.go的方法ShowPrint首字母大写的。如果这个方法是对外需要访问的,需要首字母大写。
不然会报这个错:cannot refer to unexported name testPrint.showPrint。
以上所述就是小编给大家介绍的《少说话多写代码之GO开发——004:go包引用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
如何不在网上虚度人生
[美] 肯尼思·戈德史密斯 / 刘畅 / 北京联合出版公司 / 2017-9 / 39.80元
我们平时上网多大程度上是浪费时间,多大程度是在学习、关心社会、激发创造力?我们真能彻底断网,逃离社交网络吗? 手机把都市人变成一群电子僵尸,是福是祸? 浏览记录就是我们将来的回忆录吗?文件归档属于一种现代民间艺术? 不自拍、P图、发朋友圈,我还是我吗? 美国知名概念艺术家戈德史密斯认为:上网绝不是浪费时间,而是一种创造性的活动。在本书中他以跨学科角度、散文式语言进行论证,涉及大众传播学、计算......一起来看看 《如何不在网上虚度人生》 这本书的介绍吧!