个人简介

Echo Blog


江湖无名 安心练剑
  • 22讲通关go-03-03 控制结构:if、for、switch 逻辑语句的那些事儿
    03 控制结构:if、for、switch 逻辑语句的那些事儿 在上节课中我留了一个思考题,在一个字符串中查找另外一个字符串是否存在,这个其实是字符串查找的功能,假如我需要在“老马啸西风”这个字符串中查找“老马”,可以这么做: i:=strings.Index("老马啸西风","老马") 这就是 Go 语言标准库为我们提供的常用函数,以供我们使用,减少开发。 这节课我们继续讲解 G...
    2018-09-07 01:51:23 | Lang
  • 22讲通关go-02-data type 02 数据类型:你必须掌握的数据类型有哪些?
    02 数据类型:你必须掌握的数据类型有哪些? 上节课的思考题是打印出自己的名字,这个作业比较简单,属于文本的替换,你只需要把我示例中的”Hello 世界”修改成自己的名字即可,比如以我的名字为例,替换为“飞雪无情”。 经过上一节课的学习,你已经对 Go 语言的程序结构有了初步了解,也准备好了相应的开发环境。 但是一个完整的项目需要更复杂的逻辑,不是简单的“Hello 世界”可相比的。这...
    2018-09-07 01:51:23 | Lang
  • 22讲通关go-01 基础入门:编写你的第一个 Go 语言程序
    01 基础入门:编写你的第一个 Go 语言程序 从这节课开始,我会带你走进 Go 语言的世界。 我会用通俗易懂的语言,介绍 Go 语言的各个知识点,让你可以从零开始逐步学习,再深入它的世界。 不管你以前是否接触过 Go 语言,都可以从这个专栏中受益。 现在,让我以一个经典的例子“Hello World”来带你入门 Go 语言,了解它是如何运行起来的。 Hello, 世界 m...
    2018-09-07 01:51:23 | Lang
  • 22讲通关go-00 开篇词 Go 为开发者的需求设计,带你实现高效工作
    00 开篇词 Go 为开发者的需求设计,带你实现高效工作 你好,我是飞雪无情,在技术领域从业近 10 年,目前在一家互联网公司担任技术总监,负责技术管理和架构设计。 2014 年,我因为 Docker 接触了 Go 语言,其简洁的语法、高效的开发效率和语言层面上的并发支持深深地吸引了我。 经过不断地学习和实践,我对 Go 语言有了更深入的了解,不久后,便带领团队转型 Go 语言开发,提...
    2018-09-07 01:51:23 | Lang
  • Go Lang-12-govulncheck 漏洞检查有关的 Go 工具
    教程:使用 govulncheck 查找并修复易受攻击的依赖项 Govulncheck 是一个低噪音工具,可帮助您查找并修复 Go 项目中易受攻击的依赖项。 它通过扫描项目的依赖项中是否存在已知漏洞,然后识别代码中对这些漏洞的任何直接或间接调用来实现此目的。 在本教程中,您将学习如何使用 govulncheck 扫描简单程序中的漏洞。 您还将学习如何确定漏洞的优先级和评估漏洞,以便您...
    2018-09-07 01:51:23 | Lang
  • Go Lang-13-go gc 和 reflect 反射如何实现的?
    chat Q: go 不像 java 有 jvm,是如何实现 GC 的? Go 语言与 Java 不同,确实没有像 JVM(Java 虚拟机)那样的运行时环境,但它同样具有垃圾回收(Garbage Collection,GC)机制。 Go 使用一种称为 “concurrent garbage collector” 的垃圾回收器,也被称为并发垃圾回收器。 以下是 Go 语言中的垃圾回收...
    2018-09-07 01:51:23 | Lang
  • Go Lang-12-fuzzing 模糊测试
    简洁 本教程介绍了 Go 中模糊测试的基础知识。 通过模糊测试,随机数据会针对您的测试运行,以尝试找到漏洞或导致崩溃的输入。 可以通过模糊测试发现的漏洞示例包括 SQL 注入、缓冲区溢出、拒绝服务和跨站点脚本攻击。 在本教程中,您将为一个简单的函数编写模糊测试,运行 go 命令,并调试和修复代码中的问题。 测试 创建文件 cd D:\_go\06-fuzz 初始化 mod ...
    2018-09-07 01:51:23 | Lang
  • Go Lang-11-generic 泛型
    一、泛型输出 下面的例子是一个对泛型输出的基本例子。 函数可以有一个额外的类型参数列表,它使用方括号,但看起来像一个普通的参数列表:func F(p T) { … },代码中的T any即为类型参数,意思是该函数支持任何T类型,当我们调用printSlicestring时,会被类型推导为string类型,不过在编译器完全可以实现类型推导时,也可以省略显式类型,如:printSlice([...
    2018-09-07 01:51:23 | Lang