TypeScript
TypeScript
TypeScript 是 JavaScript 的超集
TypeScript 支持的类型
const undefine: undefined = undefinedconst n: null = nullconst bool: boolean = trueconst number: number = 123const string: string = 'string'const big: bigint = 123nconst symbol: symbol = Symbol()const obj: object = {}// class 可以当作类型使用class T {}const a: T = new T()
数组
const arr: number[] = [1, 2, 3]const arr2: Array<number | string> = [1, ''] // 泛型写法
枚举
// 枚举成员的初始值会从 0 开始自增enum Position { ...
Dart
Dart
变量 var
var
如果变量没有设置初始值,Dart 会将其推断为动态类型,允许赋值为任意类型的值。
var a; // 没设置初始值时,a 为 nullprint(a); // nulla = 'str';a = 666;a = true;a = {};a = [];print(a); // []
如果设置了初始值,只能设置和初始值同样的类型
var a = 'jay';a = 'hi';a = 888; // Error: A value of type 'int' can't be assigned to a variable of type 'String'.
Object
动态任意类型
编译阶段检查类型
Object a = 'jay';a = 123;a = {};a.p(); // Error
dynamic
动态任意类型
编译阶段不检查检查类型
dynamic a = ' ...
SQL
SQL
MYSQL
数据库基础
数据库(database) 保存有组织的数据的容器(通常是一个文件或一组文件)
表(table) 某种特定类型数据的结构化清单
列(column) 表中的一个字段。所有表都是由一个或多个列组成的
行(row) 表中的一个记录
字段(field) 基本上与列(column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常用在计算字段的连接上。
模式(schema) 关于数据库和表的布局及特性的信息
数据类型(datatype) 所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据
**主键(primary key)**一一列(或一组列),其值能够唯一区分表中每个行
主键用来表示 一个特定的行。没有主键,更新或删除表中特定行很困难
表中的任何列都可以作为主键,只要它满足以下条件:
任意两行都不具有相同的主键值
每个行都必须具有一个主键值(主键列不允许NULL值)
主键的最好习惯
不更新主键列中的值
不重用主键列的值
不在主键列中使用可能会更改的值
外键(fore ...
sqlc 操作数据库
sqlc 操作数据库 PostgreSQL
sqlc 基本使用
安装
创建 sqlc.yaml
version: "2" # 版本sql: - engine: "postgresql" # 引擎 queries: "query.sql" schema: "schema.sql" # 数据表的描述 gen: go: package: "tutorial" out: "tutorial" # 输出位置
创建数据表文件
# schema.sql# 创建 users 表,拥有 id name created_at updated_at 字段# sqlc 会根据 schema.sql 生成对应的结构体CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL UNIQUE, created_at TIM ...
Go
Go
包
包导入方式
import "fmt"import "time"// or// 分组导入import ( "fmt" "time")import ( _"fmt" // 在包名前加 _ 可以匿名导入,无法使用当前包的方法,但会执行当前包内部的 init() 方法 lib "time" // 别名 . "lib" // 加 . 可以将当前包中的全部方法导入本包中)
简单值类型
数字
int64uint64float64float32complex64
字符串
// 字符串必须用双引号var str string = "字符串"str2 := "字符串"
布尔
a := trueb := false
结构体(struct)
type User struct { // 结构体属性的首字母是大写,为共有属性.首字母是小写,为私有属性. Username strin ...
SSH 登录
SSH 登录
远程执行
执行远程脚本
ssh user@ip 'sh test.sh'
本地脚本远程执行
ssh user@ip 'bash -s' < test.sh
ssh 登录
ls -al ~/.ssh 以查看是否存在现有 SSH 密钥
ssh-keygen 生成密钥
-b参数指定密钥的二进制位数。这个参数值越大,密钥就越不容易破解,但是加密解密的计算开销也会加大。
一般来说,-b至少应该是1024,更安全一些可以设为2048或者更高。
-C参数可以为密钥文件指定新的注释,格式为username@host
-t 指定密钥的加密算法,如 dsa rsa ed25519
-f参数指定生成的私钥文件
-F参数检查某个主机名是否在known_hosts文件里面
-N参数用于指定私钥的密码(passphrase)
-p参数用于重新指定私钥的密码(passphrase)。它与-N的不同之处在于,新密码不在命令中指定,而是执行后再输入。ssh 先要求输入旧密码,然后要求输入两遍新密码
-R参数将指定的主机公钥指纹移出known_hosts ...
Web3 接入 WalletConnect1.0
Web3 接入 WalletConnect1.0
安装依赖
pnpm add web3 @walletconnect/web3-provider
创建 walletConnetct provider
import WalletConnectProvider from "@walletconnect/web3-provider"// 使用 infura 创建,需注册 infura 账号const provider = new WalletConnectProvider({ infuraId: <infuraId>})// or 使用自定义 RPC 创建const provider: any = new WalletConnectProvider({ rpc: { 56: "https://bsc-dataseed1.binance.org/", // BSC 主网 97: "https://data-seed-prebsc-1-s1.binance.org:8545 ...
web3.js
Web3
前置准备
浏览器安装 metamask 插件
安装 web3.js
npm install web3# oryarn add web3# orpnpm add web3
web3 示例
import Web3, { utils } from 'web3' // 使用这种方式有可能报错// orimport Web3, { utils } from 'web3/dist/web3.min.js'// 在 xx.d.ts 中添加 ethereum 声明declare global { interface Window { ethereum: any }}// 检查是否安装 metamaskif (!window.ethereum) { window.$message?.error('Please download the MetaMask plugin')}// 创建 web3 实例const ...
Docker
Docker
安装 docker
# 选择相应的系统版本,跟着文档安装即可# Debian# 更新 apt,并安装相应的包sudo apt-get updatesudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release# 添加 GPG 密钥curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 设置 docker 仓库echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | ...
Vue3 Vite Web3Modal 搭建 Web3 项目
Vue3 Vite Web3Modal 搭建 Web3 项目
创建项目并运行项目
pnpm create vite web3Modal -- --template vue-tscd web3Modalpnpm installpnpm dev
安装相关依赖
pnpm add web3 web3modal @walletconnect/web3-provider
如有 ts 找不到模块类型声明的问题,在项目中的 xxx.d.ts 中添加以下代码
// declare module <package name>declare module 'web3modal'declare module 'web3/dist/web3.min.js'
添加 web3modal 配置
创建配置文件 hooks/web3/config.ts
import WalletConnectProvider from '@walletconnect/web3-provider'const providerOptions = { ...