====type====

import (
"fmt"
) func main() {
type bigint byte //定义类型
var a bigint
fmt.Printf("a type is %T\n",a)
type(
long int64
char byte
)
var b char ='a'
var c long =1000 fmt.Printf("b=%c,c=%d",b,c) ========channel========
package main import (
"time"
"fmt"
) func test_channel() {
//ch:=make(chan int)
ch<-1
ch<-1
fmt.Println("come to end go runtime 1")
} var ch chan int
func main() {
ch =make(chan int,0)
go test_channel()
time.Sleep(2* time.Second)
fmt.Println("runing end")
<-ch
time.Sleep(time.Second)
} =====协程==========
package main import (
"fmt"
"time"
) func test_Rou(){
fmt.Println("ddd")
}
func Add (x,y int){
z:=x+y
fmt.Println(z)
}
func main() {
go test_Rou()
for index := 0; index < 10; index++ {
go Add(index,index)
}
time.Sleep(10)
}

-----指针----
package main
import ("fmt")
func swap(p1 * int,p2 * int){
*p1,*p2 =*p2,*p1;
}
func main() {
a :=10;
var p * int;p=&a;
fmt.Printf("p=%d,&a=%v,*p=%v\n",p,&a,*p)
a,b :=10,20
swap(&a,&b)
fmt.Printf("a=%d,b=%d\n",a,b)
}

  

--------多维数组------
package main
import (
"fmt"
)
func main() {
//多维数组
//var a [10] int
//var b [5] int
//fmt.Println(a,b);
var c [3][4] int
k:=0;
for i:= 0; i<3; i++ {
for j := 0; j <4; j++ {
k++;
c[i][j]=k;
fmt.Printf("a[%d][%d]=%d,\n",i,j,c[i][j])
//frm.fmt.Println(i,j,a[i][j])
}
} }

随机数

 产生数据数 

package main

import (
"fmt"
"math/rand"
"strconv"
"time"
) func main() {
//设置随机数种子
rand.Seed(time.Now().UnixNano())
var captcha string
for i := 0; i < 6; i++ {
//产生0到9的整数
num := rand.Intn(10)
//将整数转为字符串
captcha += strconv.Itoa(num)
}
fmt.Println(captcha)
}

  

---go 回调函数

package main

import (
"fmt"
) type FuncType01 func(int,int)int //回调函数 就是函数有一个参数是函数类型,这个函数就是回调函数
//fTest FuncType01 多态接口 调用一个接口,可以有不同实现方式 func Calc(a,b int,fTest FuncType01)(result int){ //fTest = Add1
// fmt.Println("Calc")
result = fTest(a,b)
//result =Add1(3,4)
return
} func Add1(a,b int) int {
return a+b
} // func Minus1(a,b int) int {
// return a -b
// } // func Mul(a,b int) int{
// return a*b
// } func main() { a := Calc(3,4,Add1)
fmt.Println("a=",a) // a = Calc(7,5,Minus1)
// fmt.Println("a=",a) // a = Calc(4,3,Mul)
//fmt.Println("a=",a) }

-----闭包及闭包的特点 

package main

import "fmt"

func main(){
a := 20
str := "aaa" func(){
//闭包以引用的方式捕获外部变量
a = 40
str ="bbb"
fmt.Printf("a=%d,str=%s\n",a,str)
}() fmt.Printf("a=%d,str=%s\n",a,str) }
package main
import "fmt"
func test() func() int {
  var x int //x没有初始化,值为0
  return func() int {
     x++
     return x*x
  }
}
func main()  {
  //返回值是一个匿名函数,返回一个函数类型,通过f来调用返回的匿名函数,f来    调用闭包函数
  //f不关心这些捕获的变量和常量是否超出作用范围,只要你的f存在,还在使用x,这个变量x就会一直存在
  f := test()
  fmt.Println(f())
  fmt.Println(f())
  fmt.Println(f())
  fmt.Println(f())
    f = test()
    fmt.Println(f())
}
/*
func test() int  {
    //函数调用时候,x才会分配空间,才初始化为0
    var x int //没有初始化,值为0
    x++
    return x*x //函数调用完毕,x自动释放
}
func main(){
    fmt.Println(test())
    fmt.Println(test())
    fmt.Println(test())
    fmt.Println(test())
}
*/

  

go 基本语法的更多相关文章

  1. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  2. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  3. 探索C#之6.0语法糖剖析

    阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...

  4. [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性

    回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...

  5. Velocity初探小结--velocity使用语法详解

    做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...

  6. node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法

    1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...

  7. C#语法糖大汇总

    首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...

  8. 值得注意的ibatis动态sql语法格式

    一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...

  9. Flex 布局教程:语法篇

    作者: 阮一峰 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便 ...

  10. postgresql 基本语法

    postgresql数据库创建/修改/删除等写入类代码语法总结: 1,创建库 2,创建/删除表 2.1 创建表 create table myTableName 2.2 如果表不存在则创建表 crea ...

随机推荐

  1. 阿里云服务器 ECS Jenkins 安装教程

    参考:https://blog.csdn.net/liqing0013/article/details/83930419

  2. P4287 [SHOI2011]双倍回文

    题意 考虑对每个节点\(x\)维护\(lastpos_x\)表示\(x\)的所有后缀回文串中第一个\(len\leqslant len_x/2\)并且能和\(x\)最后一个字符匹配的,之后枚举节点,判 ...

  3. antd配置config-overrides.js文件

    下载antd 包 npm install antd 下载依赖包(定义组件按需求打包) npm install react-app-rewired customize-cra babel-plugin- ...

  4. Vue 时间修饰符之使用$event和prevent修饰符操作表单

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. CSP2019游记(翻车记)

    Preface 也许是人生中最重要的一场比赛了(再进不了冬令营我就没了) 结果不论怎样,想必也都是人生中的一次分水岭吧 从暑假开始到今天的一段时间,自己似乎终于找到了学OI的动力与乐趣.能认识到更多志 ...

  6. jieba 分词使用入门

    1. 介绍 JIEBA 是目前最好的 Python 中文分词组件,它主要有以下 3 种特性: 支持 3 种分词模式:精确模式.全模式.搜索引擎模式 支持繁体分词 支持自定义词典 import jieb ...

  7. Java设计模式:Simple Factory(简单工厂)模式

    概念定义 简单工厂(Simple Factory)模式,又称静态工厂方法(Static Factory Method)模式,即定义一个工厂类,根据传入的不同参数创建不同的产品实例,这些实例对象具有共同 ...

  8. java.lang.ClassNotFoundException: XXX (no security manager: RMI class loader disabled)

    在搞RMI远程发布,consumer去获取rmi远程服务的代理对象的时候出现了如下的错误 问题发现: 由于我发布的对象的包路径和获取的对象的包路径不一致,导致了这样的问题 解决方案: 包路径改为一致就 ...

  9. VS中常用C#代码段快速输入总结

    转自:https://blog.csdn.net/a980433875/article/details/12231673 Visual Studio 中有很多代码段都可以直接简写然后按TAB快速输入编 ...

  10. Flask笔记:RESTful

    RESTful是用于前台和后端进行通信的一种规范或者说一种风格,采用的是HTTP和HTTPS协议,数据传输的格式使用的都是JSON,而不是XML.通常,RESTful的URL中只有名词,没有动词,而且 ...