轩辕十四

探索科技与创新的个人博客

类型缩小

假设我们有一个名为 padLeft 的函数。

1
2
3
function padLeft(padding: number | string, input: string): string {
throw new Error("Not implemented yet!");
}

如果 paddingnumber,它会将其视为我们想要添加到 input 的空格数。如果 paddingstring,它应该只是将 padding 前置到 input。让我们尝试实现当 padLeftpadding 传递 number 时的逻辑。

1
2
3
function padLeft(padding: number | string, input: string) {
return " ".repeat(padding) + input;
}

哦,我们在 padding 上遇到错误。TypeScript 警告我们,将 number | string 添加到 number 可能不会给我们想要的东西,这是正确的。换句话说,我们没有先明确检查 padding 是否是 number,也没有处理它是 string 的情况,所以让我们这样做。

1
2
3
4
5
6
function padLeft(padding: number | string, input: string) {
if (typeof padding === "number") {
return " ".repeat(padding) + input;
}
return padding + input;
}

如果这看起来像是无趣的 JavaScript 代码,那就是重点。除了我们放置的注释之外,这个 TypeScript 代码看起来像 JavaScript。这个想法是 TypeScript 的类型系统旨在使编写典型的 JavaScript 代码尽可能容易,而无需向后兼容以获得类型安全。

阅读全文 »

字符串

JavaScript 程序的另一项基本操作是处理网页或服务器端的文本数据。 像其它语言里一样,我们使用string表示文本数据类型。 和 JavaScript 一样,可以使用双引号(")或单引号(')表示字符串。

1
2
let name: string = "bob";
name = "smith";
阅读全文 »

当用户浏览、退出和返回到您的应用时,应用中的 Activity 实例会在其生命周期的不同状态间转换。Activity 类会提供许多回调,这些回调会让 Activity 知晓某个状态已经更改:系统正在创建、停止或恢复某个 Activity,或者正在销毁该 Activity 所在的进程。

阅读全文 »

在 C 语言中,结构体是一种非常重要的数据类型。它可以将不同的数据类型组合成一个整体,方便程序员进行操作。比如,我们可以定义一个结构体来表示一个人的信息,包括姓名、年龄、性别等等。使用结构体可以使得程序更加清晰易懂,提高代码的可读性和可维护性。

阅读全文 »

在 macOS 上,man 命令用于查看系统中安装的程序的帮助文档。然而,默认情况下,这些帮助文档都是英文的,对于不熟悉英文的用户来说可能会有些困难。幸运的是,我们可以安装 manpages-zh 来获取中文帮助文档。

阅读全文 »

在 GitHub 上,我们可以使用 Fork 操作将其他用户的仓库复制到自己的账户下。但如果原始仓库更新了,我们可能需要将其再次 fork 到自己的账户下,以保持代码与原始仓库同步。下面将介绍如何使用 Git 命令行进行 GitHub 仓库再次 fork 的操作。

阅读全文 »

Git 是一款分布式版本控制系统,于 2005 年由 Linus Torvalds 创造并开源发布。Git 的设计初衷是为了更好地管理 Linux 内核代码,它的分布式特性使得多人协作开发和大型项目的版本控制变得更加高效和可靠。现在,Git 已经成为了开源社区和软件开发领域中最受欢迎的版本控制工具之一。

阅读全文 »

C 语言能让程序员恰到好处的控制程序,这是它的优势之一。程序员通过 C 的内存管理系统指定变量的作用域和生命周期,实现对程序的控制。合理使用内存存储数据是设计程序的一个要点。

存储类别

C 提供了多种不同的模型或存储类别在内存中存储数据。要理解这些存储类别,我们先来了解一些概念和术语。

程序中的大部分数据都是存储在内存中。从硬件方面来看,被存储的每个值都占用一定的物理内存,C 语言把这样的一块内存称为 对象(objc)。这里所指的对象和我们面向对象编程所说的对象是不同的,要注意(面向对象中的对象指的是类对象)。这里所说的对象实际指的是一块可以存储数据的内存。对象可以存储一个或多个值。一个对象可能并未存储实际的值,但是它在存储适当的值时一定具有相应的大小 。

阅读全文 »
0%