探索跨端开发的常用解决方案:条件编译的实现

( 本文阅读时间:15分钟 )
01
前言
跨端开发是指在不同的平台或设备上开发同一种软件应用,例如:一个应用程序可以同时运行在移动设备、桌面电脑和浏览器等不…

从一个crash问题展开,探索gcc编译优化细节

阿里妹导读
问题分析的过程也正是技术成长之路,本文以一个gcc编译优化引发的crash为切入点,逐步展开对编译器优化细节的探索之路,在分析过程中打开了新世界的…

通过测试学Go:结构体,方法和接口

假设我们需要编程计算一个给定高和宽的长方形的周长。我们可以写一个函数如下:
Perimeter(width float64, height float64)
其…

Go标准编译器优化:边界检查消除(bounds check elimination)

以下文章来源于Go 101 ,作者老貘
从Go SDK 1.7开始,Go标准编译器开始支持边界检查消除。此优化避免了很多不必要的边界检查,从而使得编译器编译出的…

通过测试学习Go:数组与切片

数组允许你以特定的顺序在变量中存储相同类型的多个元素。
对于数组来说,最常见的就是迭代数组中的元素。我们创建一个 Sum 函数,它使用 for 来循环获取数组中…

为什么大神能够写出高性能代码?因为他们掌握了Go编译器所做的优化

以下文章来源于Go 101 ,作者老貘
下面将介绍Go标准编译器(截至Go SDK 1.12.x)所做的其它一些优化。
1. 多个字符串的衔接表达式在运行时只需…

Go标准编译器对字符串和字节切片之间的转换操作所做的一些优化

以下文章来源于Go 101 ,作者老貘
我们知道,在Go中,一个字符串其实是一个只读字节序列。在正常情况下,

从一个字符串转换为字节切片的过程中将把字符串中的…

Golang之轻松化解defer的温柔陷阱

以下文章来源于码农桃花源 ,作者饶全成
defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束…

字节切片(byte slice)相关的编译器漏洞和标准库设计失误

以下文章来源于Go 101 ,作者老貘
假如一个类型MyByte定义如下,如何将一个[]MyByte切片值和一个[]byte切片值互相转换为对方的类型?

pa…

Go有GC就不需要掌握内存堆栈知识了吗?Go 堆栈的理解

在讲 Go 的堆栈之前,先温习一下堆栈基础知识。
什么是堆栈?在计算机中堆栈的概念分为:数据结构的堆栈和内存分配中堆栈。
数据结构的堆栈
堆:堆可以被看成是一…

一些编译时刻断言技巧

以下文章来源于Go 101 ,作者老貘
有时候,我们希望在编译时刻就能够判断某些条件是否成立,而不是等到运行时刻报错。但是Go并没有提供在编译时刻直接判断某个条…

Go值比较规则和其中的一些细节

以下文章来源于Go 101 ,作者老貘
在Go中,两个类型确定值是否可以比较取决于这两个值的类型是否相同或者其中的一个是否可以隐式转换为另一个的类型。另外一条规…

如何声明支持有默认值的可选参数的函数?

以下文章来源于Go 101 ,作者老貘
我们知道,Go中的函数是不支持带默认值的可选参数的。这是Go语言的设计者为了保证代码可读性特意抛弃的功能。那么我们真得无…

使用append来克隆切片常常比使用copy高效得多

以下文章来源于Go 101 ,作者老貘
直接上基准测试:

package main

import "testing"

type E…

我从几十位总监身上学到这些职场素质

以下文章来源于技艺丛谈 ,作者叶顺平
其实是我放在公司内网的HTWWM(How To Work With Me) 文档,公司内部要求所有的总监都写自己的HTWW…

Go中某些语句中的表达式之间的相对估值顺序未定义

以下文章来源于Go 101 ,作者老貘
Go语言中有很多独特的设计,也有很多从其它语言借鉴过来的设计。总体上看,Go和C语言的血缘最近。事实上,我们可以将Go语…

go 学习笔记之无心插柳柳成荫的接口和无为而治的空接口

以下文章来源于雪之梦技术驿站 ,作者雪之梦技术驿站
如果你还了解编程概念中的接口概念,那么我建议你最好还是先阅读上一篇文章.详情请点击 go 学习笔记之万万没想…

不能假设[]byte(aString)转换得到的结果切片的容量和长度肯定一致

以下文章来源于Go 101 ,作者老貘
来看一个短小的程序:

package main

import "fmt"

func mai…

这个代码怎么会编译不通过?Goland 新手常见问题解决:GOPATH 和 Go Modules 编译不成功

点击上方蓝色“Go语言中文网”关注我们,设个星标,每天学习Go语言
自从 Go1.11 开始,官方开始支持依赖管理,这就是 Go Modules。如果你对 Go…

猜猜看go是不是面向对象语言?能不能面向对象编程?

以下文章来源于雪之梦技术驿站 ,作者雪之梦技术驿站
点击上方蓝色“Go语言中文网”关注我们,设个星标,每天学习Go语言

面向对象编程风格深受广大开发者喜欢,尤…