一、概述

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. AtCoder Regular Contest 083 D: Restoring Road Network

    题意 有一张无向带权连通图(点数<=300),给出任意两点i,j之间的最短路长度dis[i][j].问是否存在一张这样的无向图.如果不存在输出-1.如果存在输出所有这样的无向图中边权和最小的一张 ...

  2. "流量监管"和"流量整形"的区别

    "流量监管" (Traffic Policing) 就是对流量进行控制,通过监督进入交换机端口的流量速率,对超出部分的流量进行"惩罚" (采用监管方式时是直接丢 ...

  3. What Is The Promiscuous Mode

    What Is The Promiscuous Mode? Some Network Interface Cards (NICs) may not allow network traffic afte ...

  4. 【BZOJ1497】【NOI2006】最大获利(网络流)

    [BZOJ1497][NOI2006]最大获利(网络流) 题面 BZOJ Description 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU集团旗下的CS& ...

  5. 【BZOJ3052】【UOJ#58】【WC2013】糖果公园(树上莫队)

    [BZOJ3052][UOJ#58][WC2013]糖果公园(树上莫队) 题面 UOJ 洛谷 Candyland 有一座糖果公园,公园里不仅有美丽的风景.好玩的游乐项目,还有许多免费糖果的发放点,这引 ...

  6. 解决:LNMP架构下访问php页面出现500错误

    默认情况下,如果被访问的php脚本中包含语法错误,服务器会返回一个空的“200 ok”页面 在php.ini中的fastcgi.error_header选项允许在这种情况下产生一个HTTP错误码 以使 ...

  7. c语言中,指针加1的情况.指针变量详细介绍

    指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址. 要搞清一个指针需要搞清指针的四方面的内容: 指针的类型, 指针所指向的 类型, 指针的值或者叫指针所指向的内存区, 还有指针本身所占 ...

  8. yd的拔钉子之路之 POI 2017

    写在前面的一些话 如果我NOIP没退役,这大概会写成一个系列吧,所以这算是系列的开始,要写一些奇怪的东西? 首先解释下什么叫“拔钉子”,其实就是在钉子上做题嘛......至于钉子具体是个什么东西就当面 ...

  9. epoll的一些细节和注意事项

    epoll_event结构 struct epoll_event { uint32_t events; /* Epoll events */ epoll_data_t data; /* User da ...

  10. 「Django」数据库访问优化

    先做性能分析 - 两个工具 django.db.connection from django.db import connection# contextprint connection.queries ...