'//'
로 표시/* */
로 표시signed
, unsigned
존재isize
: i8
, i16
, i32
, i64
, i128
usize
: u8
, u16
, u32
, u64
, u128
u32
size(4 bytes) 크기를 가짐fn main() {
let first_letter = 'A';
let space = ' '; // A space inside ' ' is also a char
let other_language_char = 'Ꮔ'; // Thanks to Unicode, other languages like Cherokee display just fine too
let cat_face = '😺'; // Emojis are chars too
}
as
를 사용해 원하는 자료형으로 캐스팅 가능fn main() {
let my_number: u16 = 8;
let second_number: u8 = 10;
let third_number = my_number + second_number as u16;
}
fn main() {
let my_number = 100;
println!("{}", my_number as char);
// let my_number = 'a' as u8;
// println!("{}", my_number);
}
char
는 4 bytes 크기를 가짐std::mem::size_of::<char>()
: std라이브러리.mem모듈.sizeof함수fn main() {
println!("{}", std::mem::size_of::<char>());
}
// or
use std::mem::size_of;
fn main() {
println!("{}", size_of::<char>());
}
len()
함수는 byte 크기를 말함fn main() {
println!("{}", "a".len()); // result: 1 - ASCII코드로 256안에서 표현가능
println!("{}", "ß".len()); // result: 2
println!("{}", "ßßßßß".len()); // result: 10
println!("{}", "国".len()); // result: 3
println!("{}", "𓅱".len()); // result: 4
}
chars()
함수는 string
을 char
리스트 형태로 표현함string
길이를 출력할 땐 STRING.chars().count()
로 표현컴파일러에게 자료형을 명시하지 않아도 가능다하다면 자체적으로 결정한다는 것을 의미
'_'
문자로 읽기 편하게 표시 가능, 개수 무관fn main() {
let small_number: u8 = 10;
let small_number = 10u8; // 10u8 = 10 of type u8
let small_number = 10_u8; // This is easier to read
let big_number = 100_000_000_i32; // 100 million is easy to read with _
}
'.'
를 추가만 해도 floats
으로 인식fn main() {
let my_number = 9.;
}
f32
, f64
두 가지 존재f64
를 사용(+ f32
는 정확도가 떨어질 수 있기 때문에)integer
로 변환 시 소수점 이하는 절삭해버림fn main() {
let my_number = 9.7;
let my_number_2 = 9;
println!("{}", my_number as i32 +my_number_2)
}
// 18