秋游圆明园
圆明园的秋天非常美丽,远远胜过其他季节,推荐九州景区,人少风景也不错,另外在很多地方都能看到松鼠,也是出乎意料。圆明园现在在我心目中的位置可以超过植物园了。
附游览路线推荐:
圆明园的秋天非常美丽,远远胜过其他季节,推荐九州景区,人少风景也不错,另外在很多地方都能看到松鼠,也是出乎意料。圆明园现在在我心目中的位置可以超过植物园了。
附游览路线推荐:
环穿从陈家堡龙王庙起点开始经过将军楼,鸳鸯楼,罗锅城,大黑岭,回到陈家堡结束。不建议这条路线,主要原因:
第一,碎石太多,会动的石头太多,下山的时候尤为辛苦,除去崴脚摔跤分享,大块碎石如果在下山时滚下也可能砸伤前面的人。
第二,风沙太大,整个路面尘土太多,风极大,需要掌握好平衡,否则风会在狭窄山梁上的人有影响,失去平衡则也有危险。
第三,风景确实一般,长城虽然逶迤巍峨,但整体仍然是穷山恶水。
在下山途中遇到一个如同大号苍耳的植物,果实如同狼牙棒,有鸡蛋大小,自己从未见过,便摘了一个带了回去。
后来有朋友提醒这是否曼陀罗,一搜索果然是这东西,而且还是剧毒,整个植物都有毒,这个果实干了以后会自己爆开,把种子喷出,如果放在家里确实危险,并且有时我们这里还会有小孩来玩,确实如果不明就里留下这个东西是个安全隐患。提醒的朋友居然是看金庸小说认识的曼陀罗,也是很神奇的,确实要感恩神的保护啊!
https://github.com/mattwhatsup/rust-practice-and-notes/tree/main/print-and-format
https://rustwiki.org/zh-CN/rust-by-example/hello/print.html
std::fmt
fn main() { println!("{}", 1); // 默认用法,打印Display println!("{:o}", 9); // 八进制 println!("{:x}", 255); // 十六进制 小写 println!("{:X}", 255); // 十六进制 大写 println!("{:p}", &0); // 指针 println!("{:b}", 15); // 二进制 println!("{:e}", 10000f32); // 科学计数(小写) println!("{:E}", 10000f32); // 科学计数(大写) println!("{:?}", "test"); // 打印Debug println!("{:#?}", ("test1", "test2")); // 带换行和缩进的Debug打印 println!("{a} {b} {b}", a = "x", b = "y"); // 命名参数 assert_eq!(format!("Hello {:<5}!", "x"), "Hello x !"); // <右边界宽度 assert_eq!(format!("Hello {:-<5}!", "x"), "Hello x----!"); // <右边界宽度+填充 assert_eq!(format!("Hello {:^5}!", "x"), "Hello x !"); // ^居中 assert_eq!(format!("Hello {:>5}!", "x"), "Hello x!"); // >右边界宽度 println!("Hello {:+}", 5); // +显示正号 println!("{:#x}!", 27); // #显示十六进制 assert_eq!(format!("Hello {:05}!", 5), "Hello 00005!"); // 宽度 println!("{:#09x}!", 27); // 十六进制数字宽度 println!("Hello {0} is {1:.5}", "x", 0.01); // 小数位 // $代入符号 println!("Hello {0} is {1:.5}", "x", 0.01); // 0的位置是5,1的位置是x,2的位置是0.01 println!("Hello {1} is {2:.0$}", 5, "x", 0.01); // 0的位置是x,1的位置是5,2的位置是0.01 println!("Hello {0} is {2:.1$}", "x", 5, 0.01); // *统配代入符号 // 0的位置是x,1的位置是5,2的位置是0.01 println!("Hello {} is {:.*}", "x", 5, 0.01); // 0的位置是5,1的位置是x,2的位置是0.01 println!("Hello {1} is {2:.*}", 5, "x", 0.01); // 转义{} assert_eq!(format!("Hello {{}}"), "Hello {}"); assert_eq!(format!("{{ Hello"), "{ Hello"); }
#[derive(Debug)]
所有类型都能推导fmt::Debug 的实现
// `derive` 属性会自动创建所需的实现,使这个 `struct` 能使用 `fmt::Debug` 打印。 #[derive(Debug)] struct DebugPrintable(i32);
使用 {:#?}
美化打印
fmt::Display
需要自己实现
// (使用 `use`)导入 `fmt` 模块使 `fmt::Display` 可用 use std::fmt; // 定义一个结构体,咱们会为它实现 `fmt::Display`。以下是个简单的元组结构体 // `Structure`,包含一个 `i32` 元素。 struct Structure(i32); // 为了使用 `{}` 标记,必须手动为类型实现 `fmt::Display` trait。 impl fmt::Display for Structure { // 这个 trait 要求 `fmt` 使用与下面的函数完全一致的函数签名 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { // 仅将 self 的第一个元素写入到给定的输出流 `f`。返回 `fmt:Result`,此 // 结果表明操作成功或失败。注意 `write!` 的用法和 `println!` 很相似。 write!(f, "{}", self.0) } }
如果想实现 {:b}
打印二进制则需要自己实现 std::fmt::Binary
package.json 添加
"type": "module",
启动js
node --experimental-specifier-resolution=node index.js
默认 –experimental-specifier-resolution=explicit,则必须写全文件名后缀。
首先准备字体文件,放入 OEBPS/Fonts 文件夹
提供CSS,并使用字体
@font-face {
font-family: '冬青黑体';
src: url(../Fonts/DongQingHeiTi-1.otf);
}
@font-face {
font-family: '汉仪隶书';
src: url(../Fonts/hanyilishu.ttf);
}
META-INF/com.apple.ibooks.display-options.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<display_options>
<platform name="*">
<option name="specified-fonts">true</option>
</platform>
</display_options>
这样在苹果系统的图书App里就可以使用“原字体”的设置方式。
注意:一定是这样
<option name="specified-fonts">true</option>
我因为用vscode保存时自动格式化,ibook是不认这样的变量的!浪费我一个多小时😷
<option name="specified-fonts">
true
</option>