Ruby 해시 VS Javascript 객체

Flatiron School에서 배우는 동안 우리는 주로 Javascript를 프런트엔드 언어로, Ruby를 백엔드 언어로 사용했습니다. 구문의 유사성과 차이점으로 인해 언어 간 전환이 때때로 어려웠습니다. 제가 보기에 Ruby에서 구분하기 까다로운 데이터 유형 중 하나는 해시였습니다. 해시는 기본적으로 Javascript 객체의 Ruby 버전입니다. 해시와 객체는 둘 다 중괄호 {}로 묶인 키 값 쌍으로 구성된다는 점에서 매우 유사해 보입니다. 그들은 몇 가지 유사점을 공유하지만 차이점도 있습니다. 이 블로그 게시물에서는 두 가지가 어떻게 유사한지 설명하고 주요 차이점도 지적하고자 합니다.

Ruby 해시와 Javascript 객체는 구문이 매우 유사하고 매우 비슷하게 보입니다. Ruby 해시와 Javascript 객체를 생성하고 무슨 뜻인지 알아보겠습니다.

루비 해시

my_dog = { name: "oliver", age: 8, breed: "yellow lab" }


자바스크립트 객체

const myDog = { name: "oliver", age: 8, breed: "yellow lab" }


보시다시피, 그들은 매우 비슷해 보이지만 약간의 차이점이 있습니다. 첫째, Ruby에서는 데이터를 변수에 저장하기 위해 let 또는 const를 사용할 필요가 없습니다. 또한 둘 사이의 명명 규칙이 약간 다릅니다. Ruby에서는 스네이크 케이스를 사용하고 Javascript에서는 카멜 케이스를 사용합니다. 스네이크 케이스는 my_variable과 같이 각 단어를 밑줄로 구분합니다. 카멜 케이스에는 공백이 없으며 변수 이름은 소문자로 시작하고 다음 단어는 myVariable과 같이 대문자로 시작합니다.

my_dog Ruby 해시와 myDog Javascript 객체에는 모두 키와 값이 있습니다. my_dog에는 값이 "oliver"인 이름의 키가 있습니다. myDog에는 값이 8인 연령 키가 있습니다. Ruby 해시와 Javascript 객체의 주요 차이점 중 하나는 Ruby 해시의 키가 모든 데이터 유형일 수 있다는 것입니다. 예를 들어 문자열을 키로 사용할 수 있습니다(예: "name": "oliver"). Javascript 객체에서 키는 객체의 키일 뿐입니다. 그러나 우리의 값은 Ruby 해시와 Javascript 객체 모두에서 모든 데이터 유형이 될 수 있습니다.

Javascript에서 myDog 개체의 나이에 액세스하고 싶다고 가정해 보겠습니다. 다음과 같이 점 표기법을 사용합니다.

myDog.age

// 8 //


Ruby에서 my_dog 해시의 나이에 액세스하고 싶다고 가정해 보겠습니다. 다음과 같이 대괄호 표기법을 사용해야 합니다.

my_dog[:age]

// 8 //


이것은 Ruby 해시와 Javascript 객체의 또 다른 주요 차이점을 보여줍니다. 그것들로부터 값에 접근하는 방법은 다릅니다. 위의 예에서 my_dog Ruby 해시와 myDog Javascript 개체의 값에 액세스하려면 다른 구문을 사용해야 합니다. Ruby에서 my_dog를 생성한 것처럼 해시를 생성하면 Ruby는 기호를 키로 사용하여 해시를 생성합니다. 이로 인해 Javascript에서와 같이 점 표기법을 사용할 수 없습니다. 위와 같이 대괄호 표기법을 사용하여 대괄호 안에 기호를 넣고 루비에게 이 기호 키에 해당하는 값을 원한다고 알려야 합니다.

마지막으로 Ruby 해시와 Javascript 개체의 주요 차이점은 Ruby 메서드를 해시의 값으로 할당할 수 없다는 것입니다. Javascript에서 개체는 값으로 함수를 가질 수 있지만 Ruby 해시는 값으로 메서드를 가질 수 없습니다. 이를 통해 Javascript 객체가 더 많은 기능을 가질 수 있습니다.

전반적으로 Ruby 해시와 Javascript 객체는 매우 유사해 보이고 동일한 구문을 많이 사용하지만 자세히 살펴보면 둘 사이에 상당히 큰 차이점이 있음을 알 수 있습니다.

좋은 웹페이지 즐겨찾기