属性 interface LabelledValue { label: string; } 通过在属性名称后添加问号?来定义可选属性。 interface SquareConfig { color?: string; width?: number; } 使用关键字readonly定义只读属性。 interface Point { readonly x: number; readonly y: number; } 方法类型 使用接口描述方法类型时,我们只需要提供方法参数及返回类型,参数列表中每个参数必须包含名称和类型。 interface SearchFunc { (source: string, subString: string): boolean; } let mySearch: SearchFunc; mySearch = function(src: string, sub: string): boolean { let result = src.search(sub); return result > -1; } 使用接口描述方法类型更像是C#语言中的委托定义。 索引类型 接口也支持描述索引类型。 i
与Javascript语言一样,TypeScript也支持几种基本的数据类型,如布尔类型、数值类型、字符串类型。除了以上几种基本类型,TypeScript同时也提供几种独特的数据类型。 布尔类型 布尔类型只支持两种值:true/false。 let done: boolean = false; 数值类型 数值类型变量允许使用十六进制、十进制、八进制、二进制字面量赋值。 let decimal: number = 6; let hex: number = 0xf00d; let binary: number = 0b1010; let octal: number = 0o744; 字符串类型 TypeScript中字符串值允许使用双引号"或单引号'标记。 let color: string = "blue"; color = 'red'; 同时,TypeScript支持模板字符串(template strings),允许跨越多行定义字符串值,并且允许在字符串内嵌入表达式,模板字符串使用反引号```标记。 let fullName: string = `Bob Bobbington`; let age: numb
修改配置文件 //codefile:/etc/nginx/sites-enabled/example.conf http { ... allow xx.xx.xx.xx; allow xx.xx.xx.xx; deny all; ... } server { ... allow xx.xx.xx.xx; allow xx.xx.xx.xx; deny all; ... } location / { allow xx.xx.xx.xx; allow xx.xx.xx.xx; deny all; } 加载Nginx配置 nginx -s reload
adb文件位置: AndroidSdk\platform-tools\adb.exe 模拟进程被杀死命令: adb shell am kill package-name 截图并保存到PC: adb shell /system/bin/screencap -p /sdcard/screenshot.png & adb pull /sdcard/screenshot.png "this/is/target/folder" 模拟屏幕按压: adb shell input swipe 100 100 120 120 1000 打开Android Device Monitor: AndroidSdk\tools\monitor Java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed //codefile:build.grade android { ... aaptOptions { noCompress "tflite" //表示不让aapt压缩的文件后缀 } .
目前该方案只支持 Chrome 和 Firefox 浏览器,通过设置 SSLKEYLOGFILE 环境变量,可以指定浏览器在访问 SSL/TLS 网站时将对应的密钥保存到本地文件中,有了这个日志文件之后 wireshake 就可以将报文进行解密了。 首先设置SSLKEYLOGFILE环境变量,指定文件路径。 配置Wireshake,Edit->Preferences->Protocols->TLS->(pre)-Master-Secret log filename,输入上面配置环境变量的路径。 重启浏览器,进行抓包
//codefile:DateTime.java import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; public class DateTime implements Comparable<DateTime> { public static DateTime now() { return new DateTime(new Date()); } public static DateTime today() { return DateTime.now().getDate(); } public static DateTime minValue() { return new DateTime(); } public static DateTime maxValue() { return new DateTime(9999, 12,
linking against a dylib which is not safe for use in application extensions 因为app extension限制了某些API的使用, ( App Extensions不能使用的一些API ) ,因此在自定义自己的framework后,这个framework可能包含了某些在App Extensions里不能使用的API,因此为了安全起见才会给出这个警告。 选中自定义framework的target,然后选中Build Settings,(记住选择All,而不是Basic),在过滤框中输入"require only",将Require Only App-Extension-Safe API的值改成YES,(默认为NO),然后Command + K clean一下工程,警告久消除了。 warning: Auto Layout Localization: Leading constraint is missing, which may cause overlapping with other views. 需要多加一条约束左或右间距约束。 'C
Ubuntu下安装 sudo apt-get install mysql-server 登录MYSQL 根用户登录 mysql -u root -p 指定用户名密码登录 mysql --user=user_name --password=your_password 创建用户 CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'password'; CREATE USER 'user_name'@'%' IDENTIFIED BY 'password'; 创建数据库、表 CREATE SCHEMA `database_name`; USE `database_name`; CREATE TABLE `table_name` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `username` varchar(100) NOT NULL, `password` varchar(100) NOT NULL, `createTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRI
子命令扩展 $(...)可以扩展成另一个命令的运行结果,该命令的所有输出都会作为返回值。 echo $(date) Tue 30 Nov 2021 05:26:45 CST 上面例子中,$(date)返回date命令的运行结果。 单引号 单引号用于保留字符的字面含义,各种特殊字符在单引号里面,都会变为普通字符,比如星号(*)、美元符号($)、反斜杠(\)等。 由于反斜杠在单引号里面变成了普通字符,所以如果单引号之中,还要使用单引号,不能使用转义,需要在外层的单引号前面加上一个美元符号($),然后再对里层的单引号转义。 echo $'it\'s' 双引号 双引号比单引号宽松,大部分特殊字符在双引号里面,都会失去特殊含义,变成普通字符。 但是,三个特殊字符除外:美元符号($)、反引号(`)和反斜杠(\)。这三个字符在双引号之中,依然有特殊含义,会被 Bash 自动扩展。 反斜杠在双引号之中保持特殊含义,用来转义。所以,可以使用反斜杠,在双引号之中插入双引号,或者插入反斜杠本身。 创建变量 如果变量的值包含空格,则必须将值放在引号中。 var="hello world" Bash 没有数据类型的概念,所有的变量值都
本篇文章只对Swift语言进行大概的认识,其中涉及的内容只包含Swfit语言中较为特殊的特性,并且不容易记忆的部分。 数据类型 Swift提供了几种基本数据类型,整数类型Int,浮点数类型Double和Float,布尔类型Bool,以及字符串类型String。当然,Swift还提供了三种集合类型,数组类型Array,集合类型Set,字典类型Dictionary。 常量及变量定义 Swift中使用关键字let声明常量,使用关键字var声明变量。允许在一行内声明多个常量或变量,使用逗号分隔。 var x = 0.0, y = 0.0, z = 0.0 在声明常量或变量时,允许提供类型标记来指明常量或变量的数据类型。 var welcomeMessage: String 也可以在一行内声明多个相同类型的常量或变量。 var red, green, blue: Double 在声明常量或变量时,若已经提供了初始值,那么Swift能自动推断出数据类型。很多时候是这样的,但是也存在一些情况需要显式地进行类型标记。 可以使用几乎所有的字符(包括Unicode字符)来命名常量或变量,除了空格符、数学符号、箭头、无效的Unic