当你学会了越来越多的编程语言后,你就会发现,不同的语言的设计思路、用法习惯天差地别。为什么会有这么大的差别?这是一件很有趣的事情,今天我们就来聊聊。
值得一提的是,本文将会涉及很多种不同的语言,读者在看到自己熟练的语言时,会觉得非常简单,但看到自己不熟悉的语言时,看了这篇文章后,你又会觉得非常神奇。
当你学会了越来越多的编程语言后,你就会发现,不同的语言的设计思路、用法习惯天差地别。为什么会有这么大的差别?这是一件很有趣的事情,今天我们就来聊聊。
值得一提的是,本文将会涉及很多种不同的语言,读者在看到自己熟练的语言时,会觉得非常简单,但看到自己不熟悉的语言时,看了这篇文章后,你又会觉得非常神奇。
2026年了,到底应该学什么前端语言?
如果你想要学习编程,或者想要转语言,面对现在市面上那么多的语言,你肯定有所纠结到底应该选择什么语言。本篇文章将会分别列举一些前端的常用语言,给出一些推荐。
本文基于个人开发经验给出前端语言选型建议,仅供参考。
我们在使用Go标准库以及一些第三方库时,经常看到需要传入一个context.Context类型的参数。Context 一词翻译过来叫做“上下文”,但在Go语言中,它到底有什么用,应该怎样用呢?
我们就以之前聊到的 五子棋AI 为例:
假设我们计算6步棋花了数秒钟,但是计算8步棋花了1分钟还没算出来,就可以提前返回计算6步的策略了。
这段话看似简单,实则涉及到并发编程的一个问题:提前返回后,8步棋的计算仍在进行,这样会持续浪费资源,如何将其停掉呢?
select 语句在编写网络应用时,服务端与客户端的协议设计是一个非常重要的环节。本文将介绍业界常见的通信协议设计思路。
我们知道,对于面向对象编程(OOP),在程序的内存中,数据一般是struct、object等封装好的类型。而在网络上进行交互,却只能使用二进制流。因此就存在这样两个问题:
Kotlin是基于Java虚拟机的一种静态类型编程语言,如果你有Java编程经验,那么学习Kotlin将会非常容易。
本文主要面向有Java编程经验的开发者,将会介绍Kotlin的基本语法和特性。如果你没有Java编程经验,想要直接上手Kotlin,建议直接在网上搜索Kotlin入门的相关文章。
new函数增强new函数现在可以接受一个表达式来指定初始值。这在序列化包(如encoding/json和protobuf)中处理指针字段时尤为实用。
type Person struct {
Name string `json:"name"`
Age *int `json:"age"`
}
p := Person{
Name: "Alice",
Age: new(30), // 以前需要先声明一个变量再取地址
}
有这样一个问题:
给定一个3×3的网格,每个格子上有1-8共8个数字,最后一个格子是空的。每次只能将紧挨着空格子的一个格子移到空格子上,将其随机打乱,例如得到这样一个状态:
| 3 | 4 | |
|---|---|---|
| 5 | 2 | 8 |
| 1 | 6 | 7 |
现在请问,如何用尽可能少的步数将其恢复到初始状态?
原文链接:The Go Memory Model (Version of June 6, 2022)
Go内存模型规定了在哪些条件下,可以保证一个goroutine对某个变量的读操作能够观察到另一个goroutine对该变量写入的值。
多个goroutine同时访问并修改数据时,必须将这些访问操作序列化。为了将访问操作序列化,应使用通道操作或其他同步原语(例如 sync 和 sync/atomic 包中提供的工具)来保护数据。
重要
这篇文章是我看完《Neural Networks and Deep Learning》一书后的个人读书笔记。本文的风格更加偏向于对有一定数学基础的人的科普,并非专业文章。如果你是相关专业的学生或者专业人士,在学习和研究过程中应该考虑研读权威书籍,请勿以本文作为参考。如有理解错误,欢迎指正。
本文主要围绕着如何识别手写数字展开。具体来讲就是给定一个28x28的纯灰度图的手写数字图像,如何判断它是0-9中的哪个数字。我们将使用一个简单的神经网络来实现这个功能。
上一篇文章主要讲了一些并发编程的简单例子。本文进一步扩展,就以常见的N皇后问题,来展示一下如何对回溯问题进行多线程求解。
近几年,越来越多的人都说,OOP不再像以前那么火了,事实的确是这样的。作为一个程序员,我们应该有寻根究底的习惯,而不是一味的随大流。到底是什么样的一种背景下,导致OOP的热度慢慢减退呢?面对这样一种趋势,我们应该做什么?本文的前半部分主要是对OOP和FP的简要介绍,后半部分用代码的形式举一些简单的例子来说明一下我的思考。这里要特别说明的是,本文主要还是以“科普”为主,后续的文章中才会涉及一些高端的算法。
有这样一个图:

上图中,连线上的数字表示点与点之间的距离,那么从点A到点F的最短距离是多少?