Struct
- Struct là một cách định nghĩa kiểu dữ liệu tùy chỉnh trong Move, có thể được mô tả như một bộ lưu trữ key-value đơn giản, trong đó key là tên của thuộc tính và value là giá trị được lưu trữ.
module addr::StructAndAbilities {
struct Name has key, store, copy, drop {
number: u64,
other: vector<u8>
}
}
Struct Abilities
- Key: Value có thể được sử dụng làm key cho các thao tác lưu trữ toàn cục.
- Copy: Value có thể được sao chép (hoặc nhân bản theo giá trị).
- Drop: Value có thể bị xóa khi kết thúc phạm vi.
- Store: Value có thể được lưu trữ trong bộ lưu trữ toàn cục.
module addr::StructAndAbilities {
use std::vector;
use std::debug::print;
use std::string::{String, utf8};
struct Users has key, drop {
list_of_users: vector<User>
}
struct User has store, drop, copy {
name: String,
age: u8
}
public fun create_user(new_user_: User, users_: &mut Users): User {
vector::push_back(&mut users_.list_of_users, new_user_);
return new_user_
}
#[test]
fun test_create_friend() {
let user1 = User {
name: utf8(b"Jayden"),
age: 30
};
let user2 = User {
name: utf8(b"Jayden"),
age: 30
};
let users = Users {
list_of_users: vector::empty<User>()
};
let createUser1 = create_user(user1, &mut users);
let createUser2 = create_user(user2, &mut users);
print(&users);
assert!(createUser1.name == utf8(b"Jayden"), 0);
assert!(createUser2.name == utf8(b"Jayden"), 0);
}
}