当前位置: 首页 > news >正文

焦作网站建设费用怎样自己做商场网站

焦作网站建设费用,怎样自己做商场网站,手机查看别人网站代码吗,自己的网站怎么开Go语言中变量的声明和JavaScript很像#xff0c;使用var关键字#xff0c;变量的声明、定义有好几种形式 变量和常量 // 声明并初始化一个变量 var m int 10 // 声明初始化多个变量 var i, j, k 1, 2, 3 // 多个变量的声明(注意小括号的使用) var(no intname string ) //…Go语言中变量的声明和JavaScript很像使用var关键字变量的声明、定义有好几种形式 变量和常量 // 声明并初始化一个变量 var m int 10 // 声明初始化多个变量 var i, j, k 1, 2, 3 // 多个变量的声明(注意小括号的使用) var(no intname string ) // 声明时不指明类型通过初始化值来推导 var b true // bool型 // : 隐含声明变量并赋值 str : mimvp.com // 等价于var str string mimvp.comGo 语言中 和 : 有什么区别 是赋值 : 是声明变量并赋值 // 使用必须使用先var声明例如 var a a 100 // 或 var b 100 // 或 var c int 100 // : 是声明并赋值并且系统自动推断类型不需要var关键字 d : 100 // Go中有一个特殊的变量下划线_ 表示任何赋给它的值将被丢弃 _, Ret: 2, 3 // 2赋值被丢弃Go语言的编译器对声明却未使用的变量在报错因此变量声明了就必须使用如果要使用变量也必须先声明 Go语言和C语言一样Go语言中也是使用分号来终结语句。但是和C语言不同的是Go语言的词法分析器在扫描源代码的过程中使用简单的规则自动插入分号因此在编写源代码的多数时候就不需要加分号了 Go语言词法分析器插入分号的规则如果在一个新行前方的最后一个标记是一个标识符包括像int和float64这样的单词、一个基本的如数值这样的文字、或以下标记中的一个时会自动插入分号 Go语言通常仅在for语句中使用分号以此来分开初始化器、添加和增量。还有一种情况就是当你在一行中写了多个语句也需要使用分号来分开 由于Go语言词法分析器添加分号的特殊性所以在有些情况下需要注意 你都不应该将一个控制结构(if、for、switch或select的左大括号放在下一行。 如果这样做将会在大括号的前方插入一个分号这可能导致出现不想要的结果。 常量在程序不能被改变的值一般都定义为数值布尔值字符串等 格式const constName [type] val 1). var num 3 // 实际上 3 也称为常量 2). 格式中 val 可以是表达式但不能为运行时才能知道结果的表达式 3). 预定义常量: true / false / iota 4). 定义多个常量时也可用下面方式 const ( constName1 [type] val1 constName2 [type] val2 )示例代码 /** * mimvp.com * 2017.1.20 */ // 声明当前文件所属的包名main是一个可独立运行的包编译后会生成可执行文件 package main import fmt // 导入包 var id 123456 /* id2 : 654321 // 在函数外用 : 编译时会出现错误局部变量声明应在函数内部 // non-declaration statement outside function body */ const PI 3.14 // 常量声明 // 每个可独立运行的程序都包含入口函数 main 与其他语言相同但无参数和返回值 func main() { var num int num 100 fmt.Println(num) // 输出 100 var num1, num2 int num1, num2 1, 2 fmt.Println(num1, num2) // 输出 1 2 var no1, no2 3, 4 fmt.Println(no1, no2) // 输出 3 4 n1, n2 : 5, 6 fmt.Println(n1, n2) // 输出 5 6 _, n : 7, 8 fmt.Println(n) // 输出 8 var ( key1 string key2 string ) key1, key2 k1, k2fmt.Println(key1, key2) // 输出 k1 k2 var ( a 9 b 10 ) fmt.Println(a, b) // 输出 9 10 fmt.Println(id) // 输出 123456 fmt.Println(PI) // 输出 3.14 /* PI 3.1415 // 改变常量的值编译会出现错误 // cannot assign to PI // cannot use 3.1415 (type float64) as type ideal in assignment */ }函数使用 1Go语言函数格式 func GetMsg(i int) (str string) {fmt.Println(i)str hello mimvp.comreturn str }解释说明 func 说明这是个函数 GetMsg是函数名 (i int) 函数接收一个int参数是传入参数 (str string) 函数返回一个string类型返回值是返回参数 2Go语言函数可返回多个值 函数返回多个值跟Java、PHP、C等主流语言都不一样但和Python、lua等脚本语言是一样的 span stylecolor:#0000FF;vim mimvp_func.go/span func GetMsg(i int) (str string, err string) {fmt.Println(i)str hello mimvp.comerr no errreturn str, err } func main() {fmt.Println(GetMsg(100))编译执行 $ go build mimvp_func.go $ ./mimvp_func 100 hello mimvp.com no err3defer的使用 defer的意思是在函数退出时调用特别用于对文件进行读写操作的时候需要在open之后要调用close操作将close操作使用defer func ReadFile(filePath string)(){file.Open(filePath)defer file.Close()if true {file.Read()} else {return false} }上述代码含义是在file.Open后不立即调用close当return false的时候调用file.Close()这样就有效避免了C语言中的内存泄露问题。 4理解 panicrecover 上面讲述了很多变量和函数还没介绍 throw - try - catch 的用法 Go语言里Panic和Recover就是其他语言中的throw和catch 示例代码 package main import fmt func main() {f()fmt.Println(Returned normally from f.) } func f() {defer func() {if r : recover(); r ! nil {fmt.Println(Recovered in f, r)}}()fmt.Println(Calling g.)g(0)fmt.Println(Returned normally from g.) } func g(i int) {if i 3 {fmt.Println(Panicking!)panic(fmt.Sprintf(%v, i))}defer fmt.Println(Defer in g, i)fmt.Println(Printing in g, i)g(i 1) }运行结果 $ ./mimvp-try-catch Calling g. Printing in g 0 Printing in g 1 Printing in g 2 Printing in g 3 Panicking! Defer in g 3 Defer in g 2 Defer in g 1 Defer in g 0 Recovered in f 4 Returned normally from f.Panic抛出了信息并且跳出函数。Recover接受到了信息并且继续处理。 这个例子理解了基本就掌握了Recover和Panic Socks5代理服务器 package main import (netfmtiobytesencoding/binary ) type Methods struct{ver, nmethods uint8methods uint8 } type sock5cmd struct{ver, cmd, rsv, atyp uint8dst [255]uint8 } type proxyCoder struct {conn net.Conn } func (c *proxyCoder) readMethods() Methods {var m Methodsb : make([]byte, 1024)n, err : c.conn.Read(b)if err ! nil err ! io.EOF { panic(err) }buf : bytes.NewBuffer(b[0:n])err binary.Read(buf, binary.LittleEndian, m.ver)if err ! nil {fmt.Println(binary.Read failed:, err)}err binary.Read(buf, binary.LittleEndian, m.nmethods)if err ! nil {fmt.Println(binary.Read failed:, err)}err binary.Read(buf, binary.BigEndian, m.methods)if err ! nil {fmt.Println(binary.Read failed:, err)}return m } func (c *proxyCoder) returnMethod() {buf : make([]byte, 2)buf[0] 5buf[1] 0c.conn.Write(buf)fmt.Println(buf) } func (c *proxyCoder) serve() {buf : make([]byte, 128)n, err : c.conn.Read(buf)if err ! nil err ! io.EOF { panic(err) }fmt.Println(buf[:n])var s stringvar t stringvar i intif(buf[3] 3){//domailfor i 4; i n-2; i {s fmt.Sprintf(%c, buf[i])}} else {//ip4 or ip6s fmt.Sprintf(%d, buf[4])for i 5; i n-2; i {s fmt.Sprintf(.%d, buf[i])}}p : make([]byte, 2)var port uint16p[1] buf[n-1]p[0] buf[n-2]b : bytes.NewBuffer(p)err binary.Read(b, binary.BigEndian, port)if err ! nil {fmt.Println(binary.Read failed:, err)}s fmt.Sprintf(:%d, port)switch buf[1] {case 1://TCPt tcpcase 2://BINDcase 3://UDPt udp}conn, err : net.Dial(t, s)if err ! nil {fmt.Printf(%s connect error %s\n, t, s)buf[1] 4c.conn.Write(buf[:n])c.conn.Close()return}buf[1] 0c.conn.Write(buf[:n])fmt.Printf(%s connect success %s\n, t, s)go serv(conn, c.conn)go serv(c.conn, conn) } func serv(in net.Conn, out net.Conn){b : make([]byte, 10240)for ;;{n, err : in.Read(b)if( err ! nil ){fmt.Printf(close\n)in.Close()out.Close()return}fmt.Printf(serv %d\n, n)out.Write(b[:n]);} } type Proxy struct { } func NewProxy() *Proxy {return Proxy{} } var DefaultProxy NewProxy() func (p *Proxy) ProxyConn(conn net.Conn ){c : proxyCoder{conn}m : c.readMethods()fmt.Println(m)c.returnMethod()c.serve() } func handleConnection(conn net.Conn){buf : make([]byte, 1024)n, err : conn.Read(buf)if err ! nil err ! io.EOF { panic(err) }fmt.Println(buf[:n])//answerbuf[0] 5buf[1] 0conn.Write(buf[:2])fmt.Println(buf[:2])//serven, err conn.Read(buf)if err ! nil err ! io.EOF { panic(err) }fmt.Println(buf[:n])conn.Close() } func main() {![请添加图片描述](https://img-blog.csdnimg.cn/94ca1460a5d9411ea13b9a4f63aa3c30.png)ln, err : net.Listen(tcp, :1080)if err ! nil {fmt.Printf(bind error\n)return}for {conn, err : ln.Accept()if err ! nil {fmt.Printf(accept error\n)continue}go DefaultProxy.ProxyConn(conn)//go handleConnection(conn)} }
http://www.hkea.cn/news/14413549/

相关文章:

  • 贵阳市观山湖区网站建设辽宁做网站的公司
  • 软件园二期做网站的公司有哪些广东建设项目备案公示网站
  • 网站建设 牛商网技术提供2345网址导航官方网站
  • 建设网站有什么作用是什么西安网络建设公司
  • 投资建设网站首页做网站 源代码
  • 网站建设是否包含等保做国际贸易哪个网站比较好
  • 怎样架设网站win2008做的网站打不开
  • 网站哪家做得好网站左边logo图标怎么做
  • 网站为何改版江宁区住房和城乡建设局网站
  • wordpress网站运行时间代码建设网站的风险分析
  • 手机网站如何制作免费设计公司推广渠道
  • 清远做网站哪家好营销网站的优势是什么
  • 山东微商网站建设做类似淘宝的网站
  • 怎么建自己的销售网站在手机制作网站
  • 网站引导页下载石材做网站
  • 资阳网站建设资阳wordpress 维护插件
  • 找培训学校去哪个网站环保网站模板 html
  • 网站设置银联密码wordpress注册简化
  • 福田我要做网站优化比较好百度关键词推广一年多少钱
  • 义县网站建设百度搜索站长平台
  • win不用iis做网站云南网站设计方案
  • 产品单页营销型网站模板下载平面设计类的网站
  • 一个网站的建立需要什么小程序网站建设
  • 邢台手机网站建设地方wordpress淘宝客自适应模板
  • 品牌宣传网站有哪些网络推广软文是一种很好的推广方式
  • 阿里云 外贸网站ui网页设计是什么
  • 怎么建设公益网站网站备案 英文
  • 苏州做学校网站的网站设计和营销
  • 动漫电影做英语教学视频网站简述电子商务网站建设的过程
  • 手机端网站如何做排名西安好玩的地方有哪些