golang
-
Learning Go — from zero to hero
https://medium.freecodecamp.org/learning-go-from-zero-to-hero-d2a3223b3d86 https://www.osc…
-
Linux下使用go语言连接SAP RFC函数的方式
GO程序连接SAP RFC函数测试代码。 GO调用SAP RFC函数
-
Windows下使用go连接SAP RFC函数
使用SAP的nwrfcsdk和gorfc库。 基本步骤如下:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889Windows下使用go连接SAP RFC函数#安装nwrfcsdkC:\nwrfcsdk#配置path;C:\nwrfcsdk\lib#配置环境变量变量名:CGO_CFLAGS 变量值:C:\nwrfcsdk\include变量名:CGO_LDFLAGS 变量值:C:\nwrfcsdk\lib#安装gcchttps://sourceforge.net/projects/mingw/#安装go saprfc库go get github.com/stretchr/testifygo get github.com/sap/gorfccd $GOPATH/src/github.com/sap/gorfc/gorfcgo buildgo install#Hello Worldpackage mainimport ("fmt""github.com/sap/gorfc/gorfc""github.com/stretchr/testify/assert""reflect""testing""time")func abapSystem() gorfc.ConnectionParameter {return gorfc.ConnectionParameter{Dest: "I64",Client: "800",User: "demo",Passwd: "welcome",Lang: "EN",Ashost: "11.111.11.111",Sysnr: "00",Saprouter: "/H/222.22.222.22/S/2222/W/xxxxx/H/222.22.222.222/H/",}}func main() {c, _ := gorfc.Connection(abapSystem())var t *testing.Tparams := map[string]interface{}{"IMPORTSTRUCT": map[string]interface{}{"RFCFLOAT": 1.23456789,"RFCCHAR1": "A","RFCCHAR2": "BC","RFCCHAR4": "ÄBC","RFCINT1": 0xfe,"RFCINT2": 0x7ffe,"RFCINT4": 999999999,"RFCHEX3": []byte{255, 254, 253},"RFCTIME": time.Now(),"RFCDATE": time.Now(),"RFCDATA1": "HELLÖ SÄP","RFCDATA2": "DATA222",},}r, _ := c.Call("STFC_STRUCTURE", params)assert.NotNil(t, r["ECHOSTRUCT"])importStruct := params["IMPORTSTRUCT"].(map[string]interface{})echoStruct := r["ECHOSTRUCT"].(map[string]interface{})assert.Equal(t, importStruct["RFCFLOAT"], echoStruct["RFCFLOAT"])assert.Equal(t, importStruct["RFCCHAR1"], echoStruct["RFCCHAR1"])assert.Equal(t, importStruct["RFCCHAR2"], echoStruct["RFCCHAR2"])assert.Equal(t, importStruct["RFCCHAR4"], echoStruct["RFCCHAR4"])assert.Equal(t, importStruct["RFCINT1"], echoStruct["RFCINT1"])assert.Equal(t, importStruct["RFCINT2"], echoStruct["RFCINT2"])assert.Equal(t, importStruct["RFCINT4"], echoStruct["RFCINT4"])// assert.Equal(t, importStruct["RFCHEX3"], echoStruct["RFCHEX3"])assert.Equal(t, importStruct["RFCTIME"].(time.Time).Format("150405"), echoStruct["RFCTIME"].(time.Time).Format("15.assert.Equal(t, importStruct["RFCDATE"].(time.Time).Format("20060102"), e/Users/d037732/Downloads/gorfc/README.mdchoStruct["RFCDATE"].(time.Time).Format(".assert.Equal(t, importStruct["RFCDATA1"], echoStruct["RFCDATA1"])assert.Equal(t, importStruct["RFCDATA2"], echoStruct["RFCDATA2"])fmt.Println(reflect.TypeOf(importStruct["RFCDATE"]))fmt.Println(reflect.TypeOf(importStruct["RFCTIME"]))c.Close() -
GO array
12345678910111213141516171819202122232425262728293031323334353637package mainimport ("fmt")func main() {// var stu [10]int// stu := [10]int{1, 2}// var stu [10]string// stu[0] = "GO_lang"// stu[5] = "C++"// stu := [...]int{5: 9008}// stu1 := [5]int{}// stu2 := [3]int{}// stu2 == stu1// var stu = new([5]int)// stu := [...][3]string{// {"zhangsan", "shenzhen", "luohu"},// {"wangwu", "shenzhen", "futian"},// }var stu [10]intfor i := 0; i < 10; i++ {stu[i] = i * 3}fmt.Println(stu)fmt.Println(&stu)} -
Go实现九九乘法表
1234567891011121314151617package mainimport "fmt"func main() {var a runevar b runefor a = 1; a <= 9; a++ {for b = 1; b <= a; b++ {fmt.Printf("%d * %d = %2d\t", a, b, a*b)if b == a {println()}}}}