【Golang基本语法】介绍

news/2024/4/13 11:53:44/文章来源:https://blog.csdn.net/cz88888888666/article/details/136459120

Golang基本语法

Golang(通常称为Go)是一种由Google开发的静态类型、编译型语言,它具有简洁、高效和易于维护等特点,Go的设计哲学旨在简化编程任务,并提供快速的编译时间和高效的执行性能。下面是一些Go语言的基本语法要点:

  1. 包声明:每个Go文件都以包声明开始,定义当前文件属于哪个包。

    package main
    
  2. 引入包:使用import关键字导入依赖。

    import "fmt"
    
  3. 函数:使用func关键字定义函数。

    func main() {fmt.Println("Hello, World!")
    }
    
  4. 变量:使用var关键字定义变量,Go也支持类型推断。

    var name string = "John"
    age := 30  // 类型推断
    
  5. 常量:使用const关键字定义常量。

    const Pi = 3.14
    
  6. 基本数据类型:Go有基本的数据类型比如intfloat64boolstring等。

  7. 控制结构

    • If/else 条件语句:
      if condition1 {// 条件1为真时执行
      } else if condition2 {// 条件2为真时执行
      } else {// 条件1和条件2都不为真时执行
      }
      
    • For 循环:
      for initializer; condition; post {// 循环体
      }// 或者范围循环
      for key, value := range mymap {fmt.Println(key, value)
      }
      
    • Switch 语句:
      switch variable {
      case value1:// 当variable == value1时执行
      case value2:// 当variable == value2时执行
      default:// 其它情况时执行
      }
      
  8. 数组和切片

    • 数组定义
      var a [5]int // 定义一个包含5个整数的数组
      
    • 切片定义
      s := []int{1, 2, 3} // 定义一个整数切片
      
  9. 映射(字典):

    m := make(map[string]int)
    m["key"] = 42
    
  10. 结构体

    type Person struct {Name stringAge  int
    }var p Person
    p.Name = "Alice"
    p.Age = 30
    
  11. 接口

    type Shape interface {Area() float64
    }type Circle struct {radius float64
    }func (c Circle) Area() float64 {return math.Pi * c.radius * c.radius
    }
    
  12. 并发

    • Goroutines
      go func() {fmt.Println("Running in a goroutine")
      }()
      
    • Channels
      ch := make(chan int)
      go func() {ch <- 123  // 将数值发送到channel
      }()
      val := <-ch  // 从channel接收数值
      

这只是Golang基本语法的一个快速概述,Go非常注重实践,推荐你通过编写实际的程序来进一步学习,你可以访问官方文档The Go Programming Language或使用在线资源例如 Go by Example 来了解更多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_996214.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CVE-2024-25600 WordPress Bricks Builder RCE-漏洞分析研究

本次代码审计项目为PHP语言&#xff0c;我将继续以漏洞挖掘者的视角来分析漏洞的产生&#xff0c;调用与利用..... 前方高能&#xff0c;小伙伴们要真正仔细看咯..... 漏洞简介 CVE-2024-25600 是一个严重的&#xff08;CVSS 评分 9.8&#xff09;远程代码执行 (RCE) 漏洞&am…

AXI4总线解析

一、读地址 AWVALID和AWREADY同时为高时&#xff0c;在这个上升沿&#xff0c;图中黄线&#xff0c;将接下来的数据写入地址40000000中。 在

FPGA 的 DSP:Verilog 中的简单 FIR 滤波器

本项目介绍如何用 Verilog 实现一个带有预生成系数的简单 FIR 滤波器。 Things used in this project 、 Story 简陋的 FIR 滤波器是 FPGA 数字信号处理中最基本的构建模块之一&#xff0c;因此了解如何利用给定的抽头数和相应的系数值组装一个基本模块非常重要。因此&#xf…

CCF-A推荐会议 安全界顶会ACM CCS‘24 4月29日第二轮投稿!共建更安全的数字世界!

会议之眼 快讯 第31届ACM CCS (ACM Conference on Computer and Communications Security)即计算机和通信安全会议将于 2024 年 10月14日-18日在美国盐湖城举行&#xff01;CCS是美国计算机协会(ACM)安全、审计与控制特别兴趣小组(SIGSAC)主办的一年一度的重要会议。是SIGSAC的…

java在cmd中乱码的问题解决

本文深入探讨了在使用 Java 命令行&#xff08;cmd&#xff09;时可能出现的中文乱码问题&#xff0c;并提供了两种解决方案。首先&#xff0c;通过临时的方式&#xff0c;用户可以执行命令 chcp 936 选择字符集&#xff0c;然后再运行 Java 命令&#xff0c;确保在选择字符集过…

Kakarot:当今以太坊的未来

1. 引言 前序博客&#xff1a; Kakarot&#xff1a;部署在Starknet上的ZK-EVM type 3 随着 Kakarot zkEVM 即将发布测试网&#xff0c;想重申下 Kakarot zkEVM 的愿景为&#xff1a; 为什么在rollup空间中还需要另一个 zkEVM&#xff1f; 开源代码见&#xff1a; https:/…

现代分布式系统架构的权衡分析

介绍 现代软件系统&#xff0c;特别是遵循分布式架构的系统&#xff0c;以其复杂性和可变性而闻名。这些系统由许多元素组成&#xff0c;每个元素都引入潜在的权衡&#xff0c;可能影响成本、性能、可伸缩性和可靠性等因素。对于导航软件现代化和转型领域的IT架构师、业务分析师…

MyBatis3源码深度解析(四)Statement

文章目录 前言2.4 Statement2.4.1 java.sql.Statement2.4.1.1 创建Statement对象2.4.1.2 执行查询SQL语句2.4.1.3 执行更新SQL语句2.4.1.4 执行不确定类型的SQL语句2.4.1.5 批量执行SQL语句 2.4.2 java.sql.PreparedStatement2.4.2.1 创建PreparedStatement对象2.4.2.2 占位符的…

centos7中python3.10找不到openssl解决方案

如果有用其他方法安装了其他版本openssl&#xff0c;记得卸载其他的openssl&#xff0c;删除其他的openssl相关文件。 yum remove openssl* rm -rf ***下载最新版的openssl文件 按照官网安装方法安装openssl 官方安装地址https://docs.python.org/3/using/unix.html#on-linu…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:RotationGesture)

用于触发旋转手势事件&#xff0c;触发旋转手势的最少手指为2指&#xff0c;最大为5指&#xff0c;最小改变度数为1度。 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 接口 RotationGesture(value?: …

SQL Server基础指令(创建与检索)

数据库demo 数据库RUNOOB 表Websites 元素&#xff1a; 创建 创建数据库 create database xxx Create database school 创建数据表 create table xxx create table student 数据表插入记录 insert into 第一种形式无需指定要插入数据的列名&#xff0c;只需提供被插入的…

【算法训练营】:数字三角形,背包问题1,背包问题2(python实现)

数字三角形 时间限制&#xff1a;2 sec 空间限制&#xff1a;256 MB 问题描述 给定一个高度为 n 的“数字三角形”&#xff0c;其中第 i 行&#xff08;1<i<n&#xff09;有 i 个数。&#xff08;例子如下图所示&#xff09; 初始时&#xff0c;你站在“数字三角形”的顶…

卡哇伊龙猫404页面源码

卡哇伊龙猫404页面&#xff0c;具有动态下雨&#xff0c;龙猫微笑等动态特效 HTML单页源码&#xff0c;喜欢的朋友可以下载 下载地址 https://www.qqmu.com/2416.html

初次安装WordPress后如何进行网站设置(主题安装、插件安装、网站美化、网站备份、安全性提升、伪静态、多域名设置等)WordPress网站常见问题设置指南

专栏地址: WordPress建站主题美化系列教程https://blog.csdn.net/seeker1994/category_12184577.html 一文搞懂WordPress是什么?为什么用它建站?怎么安装与部署? 使用腾讯云快速搭建WordPress网站流程详解 ...... 1. 前言 专栏上几篇文章介绍了小白零基础如何使用腾讯…

文件定时自动备份方法

备份文件&#xff1a;数据安全的坚实保障 在数字化时代&#xff0c;我们的生活和工作已经离不开电子文件。这些文件可能包含重要的工作资料、珍贵的个人照片、无法替代的创意作品等。然而&#xff0c;电脑硬盘的损坏、病毒的侵袭、甚至误操作都可能导致文件丢失&#xff0c;给…

【硬件工程师面经整理21_其它】

文章目录 1 为何电源的滤波电路常常是大电容配合小电容滤波2 小信号敏感信号是什么&#xff0c;如何保护敏感信号3 555定时器4 CMOS不用输入管脚该怎么处理。5 为什么一个标准的倒相器中 P 管的宽长比要比 N 管的宽长比大&#xff1f;6 S11和反射系数和插损的关系7 眼图的功能8…

44、网络编程/数据库相关操作练习20240306

一、代码实现数据库的创建&#xff08;员工信息表&#xff09;&#xff0c;并存储员工信息&#xff08;工号、姓名、薪资&#xff09;&#xff0c;能实现增加人员信息、删除人员信息、修改人员薪资操作。 代码&#xff1a; #include<myhead.h>int do_update(sqlite3 *p…

计算机网络|Socket

文章目录 Socket并发socket Socket Socket是一种工作在TCP/IP协议栈上的API。 端口用于区分不同应用&#xff0c;IP地址用于区分不同主机。 以下是某一个服务器的socket代码。 其中with是python中的一个语法糖&#xff0c;代表当代码块离开with时&#xff0c;自动对s进行销毁…

pinia报错does not provide an export named ‘hasInjectionContext

你们好&#xff0c;我是金金金。 场景 我这里是uniappvue3编写的一个小程序项目&#xff0c;在集成pinia过程当中遇到此问题&#xff0c;报错请求的模块 未提供 导出名hasInjectionContext&#xff08;位于 pinia.mjs:6:10&#xff09; 以下我项目当中vue和pinia的具体依赖版本…

学习vue3使用在线官方开发环境play.vuejs.org进行测试

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a; http://122.227.135.243:9666 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbach…