zig学习笔记(一)
zig学习笔记:一
HelloWorld
const std = @import("std");
// 运行测试 会显示:ALL 1 test passed
// const expect = std.testing.expect;
// test "always success" {
// try expect(true);
// }
pub fn main() void {
std.debug.print("Hello, {s}!\n", .{"World"});
}
赋值语法
(const|var) identifier[: type] = value
其中const为存储不可改变值的常量,var为存储可变值的变量,: type为设定改值的数据类型
在可能的情况下,const
价值观优先于var
价值。
常量和变量必须有一个值。如果无法给出已知值, undefined
则只要提供类型注释,就可以使用强制转换为任何类型的值。
const std = @import("std");
const name = "genshin";
var username = "Liliya";
pub fn main() void {
std.debug.print("My name is {s} and i love play {s}",.{username,name});
}
数组
在zig中数组使用[N]T代表数组,其中N为数组数量,可以使用_
代替,T是数组类型
const std = @import("std");
const name = "genshin";
var username = "Liliya";
const array = [_]i32{ 1, 2, 3, 4, 6, 7, 8 };
const cut = array[0..4];
const arrayOneBu = [_]u8{ 'd', 'i', 'c', 'k', 'b', 'i', 'g' };
const arrayChinese = [_]u16{ '顶', '瓜', '瓜', '的', '男', '子', '汉' };
pub fn main() void {
std.debug.print("My name is {s} and i love play {s}\n", .{ username, name });
std.debug.print("array count:{d},get NO.2 Str is {d}\n", .{ array.len, array[2] });
std.debug.print("array count:{d},get NO.2 Str is {u}\n", .{ arrayOneBu.len, arrayOneBu[2] });
std.debug.print("array count:{d},get NO.2 Str is {u}\n", .{ arrayChinese.len, arrayChinese[7] });
std.debug.print("array count:{d},get NO.2 Str is {any}", .{ cut.len, cut });
}
test测试函数
用于在没有main入口时检查代码是否可运行:
const std = @import("std");
test "test add one" {
try std.testing.expect(addOne(42) == 43);
}
test addOne {
try std.testing.expect(addOne(42) == 43);
}
test "success" {
try std.testing.expect(true);
}
test "fail" {
try std.testing.expect(false);
}
test "skipping" {
return error.SkipZigTest;
}
// 内存泄漏探测
test "detect leak" {
var list = std.ArrayList(u21).init(std.testing.allocator);
try list.append('☔');
try std.testing.expect(list.items.len == 1);
}
fn addOne(number: i32) i32 {
return number + 1;
}
-----------------------------------------------------------------------------------------
PS E:\学习\zigsd> zig test .\testMethod.zig
All 2 tests passed.
我是Dixk-BXy,新手上路,转载请注明原文链接:https://www.cnblogs.com/DenZi/articles/18353930