Web Rust基础三
模块化
函数
函数的参数类型和返回值类型不能省略:
fn a_plus_b(a: i32, b: i32) -> i32 {
return a + b;
}
fn main() {
println!("{}", a_plus_b(1, 2));
}
函数的返回值可以像用 return 返回。更常见的是,函数的最后一个表达式如果不以分号结尾,它的值就是这个函数的返回值,例如:
fn a_plus_b(a: i32, b: i32) -> i32 {
a + b
}
给函数传参时,对于字符串或者复杂 struct ,为了避免复制,通常应传递[……]
Web Rust基础二
循环-流程控制
循环与其他语言大致相同:
//作用域块
let a = {
println!("ABC"); // 输出 ABC
"DEF" // 作为这个花括号块的值
}; // 分号不可省略
println!("{}", a);
//if else
let a1 = 1;
let b1 = 2;
let c1 = if a1 < b1 {
println!("true");
"[......]
Web Rust基础一
介绍
Web开发者使用的底层编程语言,在某些场景下,性能高于C++。
这里是多年前(大概2015年左右,那时候还在艰难的推广React库😭)的使用总结。
安装
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装完成后
//升级
rustup update
//查看版本
cargo --version
构建和包管理
cargo build// 可以构建项目
cargo run// 可以运行项目
cargo test// 可以测试项目
cargo doc// 可以为项目构建文档
cargo pu[......]
Dart使用(早年)
本文发布与2013年11月7日
本文与2021年12月23日整理
今日立冬,今年的立冬比往年显冷清。
Dart是Google正在开发中的一门语言,用于替代Javascript。相比javascript,它的语言基础更加牢靠,有利于创建更可靠的程序。鉴于现在web开发的情况为,后端有各种成熟的web框架,前端被风头正盛的各种js框架统治,所以Dart的目标只好定在“未来”,希望能在将来成为人们构建结构化web程序的首选语言。另外,Dart的作者是v8引擎的作者,仅这一点就能人以强大的信心。
我曾在很久以前简单了解了一下Dart,那个时候的它还太弱。这段时间看到Dart team正在开发[……]
Dart语法重新整理
很多年前简单总结了Dart的一些特点,都是基于当时的一些使用情况,从新梳理下。
Dart特点
- 在Dart中,一切都是对象,所有的对象都是继承Object,也就是所有能够使用变量引用的都是对象,每个对象都是一个了类的实例。在Dart中甚至数字、方法和null都是对象。
没有赋初值的变量都会有默认值null
标识符可以以字母或者_下划线开头,后面可以是其他字符和数字的组合。
Dart支持顶级方法,如main方法,同时还支持在类中定义函数(静态函数和实例函数),还可以在方法中定义方法,Dart支持顶层变量,也支持类变量或对象变量。
Dart没有public、prote[……]
Arm Flutter环境配置
本文在高通骁龙的ARM64硬件上。。。理论使用与所有ARM64的架构。
在x86或x64平台上配置环境比较简单,详见官网文档。这里使用arm-v8的aarch64架构。
Flutter安装
官网下载SDK后,按文档步骤安装即可。
1、将压缩包解压到自己认为合适的位置(手痒了可以放到系统文件夹里去🧱�)
cd /yourself file path
tar xf /yourself file path/flutter_linux_2.x.x-stable.tar.xz
2、添加环境变量,终端直接:
export PATH="$PATH:`pwd`/flutter/bin"
[……]
Webgpu基础
前两天看了下Api,变化有点大,重新整理下。
初始化
const entry: GPU = navigator.gpu;
if (!entry) {
throw new Error('WebGPU is not supported on this browser.你类浏览器不支持。')
}
Adapter适配器
Adapter就是显卡,除了N卡还有A卡、高通骁龙的SoC等等。
let adapter: GPUAdapter = null;
adapter = await entry.requestAdapter();
Device设备
Device就是逻辑对象化[……]
WebGL基础
由于WebGl技术较为成熟,这里不再赘述。
资源初始化
let canvas: HTMLCanvasElement = document.getElementById('webgl') as HTMLCanvasElement;
let gl: WebGLRenderingContext = canvas.getContext('webgl');
if (!gl) {
throw new Error('WebGL failed to initialize.');
}
gl.clearColor(0.0, 0.0, 0.0, 0.0);
gl.colorMask(true,[......]