内容简介:一般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包引用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深度解析淘宝运营
刘涛 / 电子工业出版社 / 2015-9-1 / 49.00元
淘宝运营,仅有知识是不够的,还需要有系统的运营思路。为帮助广大电商从业者以及众多中小卖家更好地运营店铺,《深度解析淘宝运营》全面阐述了整个店铺运营的重点环节,包括淘宝搜索规则、打造爆款、店铺规划、客户服务、直通车、钻石展位、数据分析等内容。具体操作步骤翔实,并且结合笔者的实际操作经验,将各个环节最本质的一面透彻展现给读者,结合理论与实战,尽可能向读者展示一个最真实的运营核心。《深度解析淘宝运营》没......一起来看看 《深度解析淘宝运营》 这本书的介绍吧!