会飞的菜虫

但行好事, 莫问前程

在 Swift 程序中,事物有一个作用域。这是指他们被其他事物看到的能力。事物嵌套在其他事物中,形成事物的嵌套层次结构。规则是,事物可以在自己的层次上看到事物,也可以在包含它们的更高层次上看到事物。级别如下:

  • 模块是一个作用域
  • 文件是一个作用域
  • 花括号是一个作用域
阅读全文 »

Swift 程序可以由一个文件或多个文件组成。在 Swift 中,文件是一个有意义的单元,对于可以放入其中的 Swift 代码的结构有明确的规则。只有某些内容可以放在 Swift 文件的顶层-主要是以下内容:

模块import语句

模块是比文件更高级的单元。一个模块可以由多个文件组成,这些文件都可以自动看到对方。你的应用程序的文件属于一个单独的模块,可以看到彼此。但是如果没有import语句,一个模块就不能看到另一个模块。这就是你在 iOS 程序中与 Cocoa 对话的方式:文件的第一行写着import UIKit

阅读全文 »

可执行代码,如fido.bark()one = twoprint("hello"),不能直接进入程序的任何地方。不了解这一事实是初学者常见的错误,并可能导致一个神秘的编译错误消息,如“预期声明”。

一般来说,可执行代码必须存在于函数体中。函数是一批代码,可以作为批处理,来运行。它的主体由花括号分隔。通常,函数有一个名称,它通过函数声明获得这个名称。函数声明语法是稍后要补充的另一个细节,但这里有一个例子:

阅读全文 »

变量是对象的名称。从技术上讲,它指向一个对象;它是一个对象的引用。从非技术上讲,你可以把它想象成一个放置物品的鞋盒。这个对象可能会发生变化,或者它可能会在鞋盒内被另一个对象取代,但名称本身具有完整性。变量指向的对象是变量的值。

在 Swift 中,没有变量隐式地存在;所有变量都必须声明。如果你需要一个名字,你必须说“我正在创建一个名字”。您可以使用两个关键字中的一个: letvar。在 Swift 中,声明通常伴随着初始化——作为声明的一部分,您使用等号立即给变量一个值。这两个都是变量声明(和初始化):

阅读全文 »

如果你了解 Objective-C 或其他面向对象语言,你可能会对 Swift 关于对象 1 的概念感到惊讶。在许多语言中,例如 Objective-C,对象是一个类或类的实例(我将在后面解释什么是实例)。Swift 有类,但 Swift 中的 1 既不是类,也不是类的实例: 1 的类型,即Int,是一个struct,1 是一个结构体的实例。Swift 还有另一种可以发送消息的东西,叫做enum

阅读全文 »

Swift 说:“一切都是对象。”这是各种现代面向对象语言的共同自夸,但它意味着什么呢?好吧,这取决于你对“对象”的定义——以及你对“一切”的定义。

让我们从规定对象开始,粗略地说,是可以向其发送消息的东西。消息,粗略地说,是一种命令式指令。例如,你可以对狗下命令:“汪汪!”“坐!”在这个类比中,这些短语是消息,而狗是你发送这些消息的对象。

在 Swift 中,消息发送的语法是点表示法。我们从对象开始;然后有一个点(句号);然后是消息。(有些消息后面也有括号,但现在忽略它们;消息发送的完整语法是我们稍后要补充的细节之一。)这是有效的 Swift 语法:

1
2
fido.bark()
rover.sit()
阅读全文 »

一个完整的 Swift 命令是一个语句。Swift 文本文件是由多行组成的文本。换行符是有意义的。一个程序的典型布局是一条语句一行:

1
2
print("hello")
print("world")

( print 命令在 Xcode 控制台中提供即时反馈)

阅读全文 »

Picocolors

github 地址

作用

使用ANSI颜色进行终端输出格式化的最小和最快的库。

1
2
3
import pc from "picocolors";

console.log(pc.green(`How are ${pc.italic(`you`)} doing?`));

特性:

  • 无依赖
  • chalk库的体积小 14 倍,速度快 2 倍
  • 被像PostCSSSVGOStylelint,和Browserslist这些流行工具使用
  • Node.js v6+ 和浏览器支持。支持 CJS 和 ESM 项目。
  • 包括 TypeScript 类型声明
  • NO_COLOR 友好
阅读全文 »

背景: 手机“文件”应用程序里的rar文件, 用原生程序打不开, 需要下载第三方 app 打开, 但是又不想下载, 担心会有隐私泄漏问题. 然后想着自己写一个 demo 来实现一下.

需求

开发一个 demo, 用来解压手机“文件”应用程序里的rar文件.

实现思路

要实现这个需求, 需要完成两个步骤

  1. 能够访问到手机“文件”应用程序中的rar文件.
  2. 解压rar文件
阅读全文 »

作用域是什么?

JavaScript中的作用域指的是变量的可见性和可访问性.也就是说,程序的哪些部分可以访问该变量,或者该变量在哪里是可见的.

为什么作用域如此重要?

  1. 作用域的主要好处是安全性。也就是说,这些变量只能从程序的某个区域访问。使用作用域,我们可以避免程序其他部分对变量的意外修改。
  2. 作用域也减少了名称空间冲突。也就是说,我们可以在不同的作用域中使用相同的变量名。
阅读全文 »
0%