首页 > 其他分享 >GO 介绍

GO 介绍

时间:2024-04-01 16:14:22浏览次数:22  
标签:java 语言 编译 -- 介绍 --- go GO

###### GO介绍#####

# Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言

# Go是静态强类型语言,是区别于解析型语言的编译型语言(静态:是否需要编译 强类型:不同类型不允许直接运算)。
# python 是动态强类型:不需要编译,不同类型不允许直接运算
# js 动态弱类型

解析型语言——源代码是先翻译为中间代码,然后由解析器对代码进行解释执行。
编译型语言——源代码编译生成机器语言,然后由机器直接执行机器码即可执行。

# 跨平台的编译型语言:交叉编译


##### 常见编程语言比较#########
-编译型:
    -java:
        -jdk:java集成开发环境---》java开发需要用它---》好多公司运行java,也装
        -jre:java 运行环境,java程序运行,需要装
        -jvm:java虚拟机,java--》源代码---》字节码--》运行在jvm上
        
        -java源代码---》编译后---》不是可执行文件---》字节码文件,jar,war包---》运行在jvm上
        -编译型语言--》跟传统编译型语言有区别
        
        -sun公司---》甲骨文--》oracle
        -mysql免费开源软件---》oracle投资了,买了它
        -安卓开发需要java---》
    -go:编译后--->直接是可执行文件--->交叉编译--》跨平台编译
    ----------以下都是  需要在不同平台编译-----------
    -c
    -C++
    -C#
-解释型:---》无论开发还是运行---》都需要解释器
    -python:pipinstaller:https://zhuanlan.zhihu.com/p/430490285
    -php
    -nodejs
    -。。。
   
    
# 如何保证python代码安全
    -1 打包成可执行文件 部署
    -2 把源码做到docker中
    -3 项目运行起来,源代码删除
    
    
# go 发展历史
2009年11月7日 weekly.2009-11-06 —— 早期的版本
2012年3月28日 go1 —— 稳定版版的发布
2015年8月19日 go1.5 —— 实现的架构变化,同时保留了和旧版本的兼容性,本次更新中移除了”最后残余的C代码”。---》编程语言自举
2020 年 2 月 go 1.14— — 现在 Go Module
    -包管理

    
# Go语言简单易学,天生支持并发,完美契合当下高并发的互联网生态

开发环境搭建

装俩东西
    - go sdk:https://golang.google.cn/dl/
        -1.22.1 版本
        -一路下一步--》装好---》不需要配置环境变量
        -打开cmd
            -输入 go version
    -IDE集成开发工具
        -Goland:
        -vscode

第一个helloworld

# 使用goland创建项目
    -go.mod  # 等同于 package.json, requirements.txt pom.xml
    
// 声明当前文件属于哪个包,改成main 包
// 1 重点:go程序要运行,必须有个main包,入口是main函数
package main

// 2 导入fmt包---》打印函数在这个包下
import "fmt"

// 3 函数
func main() {
    // 4 打印hello world
    fmt.Println("hello world")

}

// 5 运行项目几种方式
/*
1 go build go文件---》成可执行文件---》运行可执行文件
2 右键---》运行
3 main函数上点 绿色箭头
4 使用命令:go run demo01.go   编译并运行
*/

命名规范

#  一 变量定义规范
Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:
    # 1 以一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线
    # 2    大写字母和小写字母是不同的:Name和name是两个不同的变量
    # 3 关键字和保留字都不建议用作变量名

# 二 关键字
Go语言中关键字有25个;关键字不能用于自定义名字,只能在特定语法结构中使用。

break      default       func     interface   select
case       defer         go       map         struct
chan       else          goto     package     switch
const      fallthrough   if       range       type
continue   for           import   return      var

# 三 保留字
go语言中有37个保留字,主要对应内建的常量、类型和函数

内建常量: true false iota nil

内建类型:  int int8 int16 int32 int64
          uint uint8 uint16 uint32 uint64 uintptr
          float32 float64 complex128 complex64
          bool byte rune string error

内建函数: make len cap new append copy close delete
          complex real imag
          panic recover
        
        
# 四 注意
-这些保留字并不是关键字,可以在定义中重新使用它们。在一些特殊的场景中重新定义它们也是有意义的,但是也要注意避免过度而引起语义混乱
-变量定义使用驼峰
    go:AgeOfPerson
    python:age_of_person
    java:驼峰
-go 文件名
    -python :下划线
    -go:下划线
    -java:驼峰

 

标签:java,语言,编译,--,介绍,---,go,GO
From: https://www.cnblogs.com/wzh366/p/18108699

相关文章

  • Django在Windows server IIS部署
    Django在WindowsserverIIS部署本文章转载于https://www.django.cn/article/show-21.html,详查看此文教程基于Windowsserver2012+Python3.6+IIS之上部署django的,同样适用于server2012之上的版本服务器和windows7以上的windows操作系统。提示:Python不要安装在windows用户目录下......
  • python golang 安装私有库的用法
    python安装在requirements.txt增加了github私有安装库的依赖git+https://${GITHUB_TOKEN}@github.com/YOLOTECHNOLOGY/bossjob-auth-lib.git@${GITHUB_LIB_BRANCH}当前该库无法通过pipenv直接安装,需要进入到虚拟环境,通过pipinstall进行安装安装前需要设置GITHUB_......
  • Django项目部署本地windows IIS(详细版)和static文件设置(页面样式正常显示)
    Django项目部署本地windowsIIS(详细版)和static文件设置(页面样式正常显示)原文链接:https://blog.csdn.net/hahahahanhanhan/article/details/134638020目录必要条件:一、下载并启用wfastcgi二、window安装IIS功能三、IIS管理器中添加网站1、复制项目2、复制wfastcgi.py文件......
  • Django+nginx+uwsgi +apscheduler任务重复执行问题
    Django+nginx+uwsgi+apscheduler任务重复执行问题1、问题描述通过Django+nginx+uwsgi部署项目,前端页面通过API接口动态添加、管理apscheduler定时任务。由于uwsgi启动多个worker,导致每个worker执行一次定时任务,导致任务的重复执行。如下图,因为uwsgi.ini文件......
  • Django项目windows部署教程,详细踩坑总结
    Django项目windows部署教程,详细踩坑总结本篇文章主要关于Django在Windows上利用Apache部署,如果你想通过IIS部署,推荐这篇文章在IIS服务器上部署django_djangoiis-CSDN博客,我之前尝试部署在IIS上,发现Django的定时任务失效了,上网查找了一番,普遍说法是被服务器回收了,经过了一番操作,......
  • 推荐一个GoWeb框架 Fiber
    Fiber是一个基于Fasthttp(Go最快的HTTP引擎)构建的GoWeb框架。它旨在简化零内存分配和性能的情况,以便快速开发,比Gin框架快10倍官网地址https://docs.gofiber.io/packagemainimport("log""github.com/gofiber/fiber/v2")funcmain(){app:=fiber.New()......
  • Django——初探路由
    第3章初探路由3.1路由定义规则​ 路由称为URL,也可以称为URLconf,是对可以从互联网上得到的资源位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每一个文件都有一个唯一的路由,用于指出网站文件的路径位置。简单地说,路由可视为我们常说的网址,每个网址代表......
  • 【GO】大小堆demo
    `packagemainimport("container/heap""fmt""math/rand")typeMyHeap[]MembertypeMemberstruct{scoreintnamerune}func(hMyHeap)Len()int{returnlen(h)}//Smallestheapfunc(hMyHeap)Less(i,jint)bool{r......
  • 学习transformer模型-Dropout的简明介绍
    Dropout的定义和目的:Dropout是一种神经网络正则化技术,它在训练时以指定的概率丢弃一个单元(以及连接)p。这个想法是为了防止神经网络变得过于依赖特定连接的共同适应,因为这可能是过度拟合的症状。直观上,dropout可以被认为是创建一个隐式的神经网络集合。PyTorch的nn.Drop......
  • Android Binder——Java层介绍(三)
    一、简介       对于Android系统,一般是从java层到native层,再到kernel驱动层,形成一个完整的软件架构。Android系统中的BinderIPC通信机制的整体架构也是如此,Java和C++层都定义有同样功能的供应用程序使用的Binder接口。然而Java层中Framework层的......