一、概述

1、特征

1.1、语法简单:规则严谨、保留指针、但默认阻止指针运算、将切片和字典作为内置类型、更好的维护性;

1.2、并发模型:运行时用GOroutine,一个关键字、简单而自然;搭配channel实现CSP模型;

1.3、内存分配:内存分配器完整保留了tcmalloc的原始架构,使用cache提供无锁分配、多个centrl在不通线程间平衡内存单元复用、heap管理大块内存;

1.4、垃圾回收:并发标记,逐步引入三色标记、写屏障;

2、简介

2.1、源文件:

源码文件使用UTF-8编码,对Unicode支持良好。package声明所属包名称,以".go"作为文件扩展名,语句结束分号默认省略,入口函数main没有参数,必须放在main包中,

用import导入标准库或第三方包

示例:

package main

import (

  "fmt"

func main() {

  fmt.Println("hello,world!")

}

可直接运行,或编译为可执行文件

go run main.go

2.2、变量

使用var定义变量,编译器总是被初始化为零值,避免出现意外状况,

示例一:

package main

func main() {

  var x int32

  var s = "hello,world!"

  println(x,s)

}

在函数内部,还可省略var关键之,使用更简单的定义模式

示例二:

package main

func main() {

  x := 100  //注意,赋值符号不同

  println(x)

}

2.3、表达式

GO仅有三种流控制语句

if 示例:

package main
func main() {
  x := 0
  if x > 0 {
    println("x")
  } else if x < 0 {
    println("-x")
  } else {
    println("0")
  }
}
switch示例:
package main
func main() {
    x := 100
    switch {
        case x > 0:
            println("x")
        case x < 0:
            println("-x")
        default:
            println("0")
    }
}
for 示例:
package main
// func main() {
//  for i :=0; i < 5; i++ {
//      println(i)
//  }
// }
// func main() {
//  for i :=4; i >= 0; i-- {
//      println(i)
//  }
// }
// func main () {
//  x := 0
//  for x < 5 {     //相当于 while (x < 5) {...}   
//      println(x)
//      x ++
//  }
// }
// func main() {
//  x := 4
//  for {
//      println(x)  //相当于 while true {...}
//      x--
//      if x < 0 {
//          break
//      }
//  }
// }
// 在迭代遍历时, for...range 除元素外,还可返回索引
func main() {
    x := []int{100,101,102}
    for i, n := range x {
        println(i, ":", n)
    }
}
输出:

 

DAY1-GO初识(概述)的更多相关文章

  1. 小白的Python之路 day1 模块初识

    模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的. ...

  2. Python之旅Day1 数据类型初识(数字|字符串|列表|数据运算) 编码 表达式(if...else|for|while)

    初识PYTHON Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(吉多·范罗苏姆)于 ...

  3. day1笔记 初识python,paython基础

    一.计算机,操作系统 软件发送指令给操作系统,操作系统再把指令发送给  内存,cpu,硬盘等 二.Python的历史. Python2: 1.臃肿,源码的重复量很多.2.语法不清晰,掺杂着c,++,P ...

  4. Python. Day1. 之初识 变量数据类型

    稍后添加 一  介绍 二  变量

  5. Day-1:初识开发板与基础知识

    买的这款51,ARM,AVR三合一的单片机,也不知道后面具体使用会不会有问题,先玩玩看吧. ------------------------------------------------------ ...

  6. Day1 Spring初识(一)

    在网上看到一篇文章,感觉写得挺不错的,转载一下,本文转载自:http://www.cnblogs.com/xdp-gacl/p/3707631.html和http://www.cnblogs.com/ ...

  7. Day1 Mybatis初识(一)

    框架 将重复的,繁琐的代码实现封装,让程序员将更多的精力放在业务的理解和分析上. 框架的作用 提高开发效率 隐藏细节 三大框架SSH  -->   SSM 1)        表述层:   用户 ...

  8. 【学习总结】GirlsInAI ML-diary 总

    2019-1-7 GirlsInAI第一期: 人工智障工程师养成计划,代号ML-diary 原博github链接:Girls-In-AI 环境:Windows / MacOS 工具:Anaconda ...

  9. python学习课件

    张鑫 18511446896 ------------------------------------------------------------------------------------- ...

  10. Spark机器学习 Day1 机器学习概述

    Spark机器学习 Day1 机器学习概述 今天主要讨论个问题:Spark机器学习的本质是什么,其内部构成到底是什么. 简单来说,机器学习是数据+算法. 数据 在Spark中做机器学习,肯定有数据来源 ...

随机推荐

  1. (转)Redis使用详细教程

    转载至http://www.cnblogs.com/wangyuyu/p/3786236.html 一.Redis基础部分: 1.redis介绍与安装比mysql快10倍以上 ************ ...

  2. Spring Boot系列教程三:使用devtools实现热部署

    一.前言 Eclipse下使用spring-tool-suite插件创建一个spring boot 工程,通过右键“Run As”--->"Spring Boot App"来 ...

  3. 【ZOJ3316】Game(带花树)

    [ZOJ3316]Game(带花树) 题面 Vjudge 翻译: 给定棋盘上\(n\)个旗子 一开始先手可以随便拿, 然后每次都不能取离上次的曼哈顿距离超过\(L\)的旗子 谁不能动谁输. 问后手能否 ...

  4. 洛谷 P1854 花店橱窗布置 【dp】

    题目描述 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,从左到右按1到V顺序编号,V是花瓶的数目.花束可以移动,并且每束花用1到F的整数标识 ...

  5. SQLite中的自增关键字:AUTO_INCREMENT、INTEGER PRIMARY KEY与AUTOINCREMENT

    1.SQLite不支持关键字AUTO_INCREMENT 1)AUTO_INCREMENT不生效的问题 SQL语句: CREATE TABLE todo (     id INTEGER AUTO_I ...

  6. 【字符串】KMP字符串匹配

    百度百科 Definition \(KMP\)算法是一个字符串匹配算法.他接收两个字符串\(A,B\),返回\(B\)在\(A\)中出现的所有位置. 以下称需要被匹配的串\(A\)为主串,可能在主串中 ...

  7. 找圆算法((HoughCircles)总结与优化

    http://www.opencv.org.cn/forum.php?mod=viewthread&tid=34096  Opencv内部提供了一个基于Hough变换理论的找圆算法,Hough ...

  8. PostgreSQL 传统 hash 分区方法和性能

    背景 除了传统的基于trigger和rule的分区,PostgreSQL 10开始已经内置了分区功能(目前仅支持list和range),使用pg_pathman则支持hash分区. 从性能角度,目前最 ...

  9. 手脱FSG v1.33

    1.载入PEID FSG v1.33 (Eng) -> dulek/xt 2.载入OD,先F8跟一会 004103E3 > BE A4014000 mov esi,fsg1_33.0040 ...

  10. 多重检验_LSD方法不准确性

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...