사용자 정의 데이터에 대한 println!의 출력

Rust에서 내가 정의한 데이터를 println!를 이용해 화면에 출력하기 위해서는 반드시 std::fmt::Display 트레이트를 구현해야 합니다. 먼저 다음과 같은 MyStruct라는 데이터를 정의합니다.

struct MyStruct {
    name: String,
    age: u16,
}

fn main() {
    let o = MyStruct {
        name: String::from("Ferris"),
        age: 17,
    };

    println!("{}", o);
}

위의 코드 12번은 에러를 발생하는데, 이는 MyStruct 타입의 o 객체를 콘솔에 출력하기 위해서는 MyStruct에 대해 std::fmt::Display 트레이트를 구현하지 않았기 때문입니다. 정상적으로 작동하기 위해서 위의 코드에 대해 다음처럼 보완하면 됩니다.

use std::fmt;

struct MyStruct { ... }

impl fmt::Display for MyStruct {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "name: {}, age: {}", self.name, self.age)
    }
}

fn main() {
    let ferris = ...

    println!("{}", ferris);
}

JavaScript, 객체의 프로퍼티 개수 얻기

Object 타입의 객체에 대한 프로퍼티의 개수를 얻기 위해서 다음처럼 접근할 수 있습니다.

const obj = { .... };

let result = 0;
for (let fid in rows) {
  result++;
}

느낌이 쎄합니다. 다행히 다음과 같은 매우 효과적인 방식이 있습니다.

Object.keys(obj).length

보호된 글: Rust

이 콘텐츠는 비밀번호로 보호되어 있습니다. 이 콘텐츠를 보려면 아래에 비밀번호를 입력해주세요.

UV, OpenGL vs DirectX

텍스쳐의 좌표에 해당하는 UV에 대한 OpenGL과 DirectX의 비교

먼저 OpenGL에 대한 UV 내역

다음은 DirectX에 대한 UV 내역

babylon.js와 three.js는 WebGL 기반이고 WebGL은 OpenGL 기반이므로 OpenGL의 UV를 따름

위 이미지에 대한 출처 : https://www.puredevsoftware.com/blog/2018/03/17/texture-coordinates-d3d-vs-opengl/