최근에 약간 복잡한 데이터 구조를 만들어야하고 연관 배열을 조금 더 사용하기 시작했습니다. 다른 언어의 사전과 유사합니다. 변수가 사전에있는 객체를 변수에 할당 할 때 데이터 바인딩을 할 때 속도가 향상되는 대부분의 언어가 다릅니다. 본질적으로 그것은 사전과 변수가 동일한 메모리 블록을 참조하고 하나에 대한 편집이 다른 것에 영향을 미치도록합니다. 그러나 JMP는 이것을하지 않습니다. 아래에 제가 말하고자하는 것을 설명하는 데 도움이되는 몇 가지 예제 코드가 있습니다.
testAA = Associative Array(
{
{"test1", Associative Array(
{{"data", {"data1", "data2"}}}
)},
{"test2", Associative Array(
{{"data", {"data1", "data2"}}}
)}
}
);
//create new object
AA = testAA["test1"];
//adding data to AA doesn't add data to testAA
AA["newData"] = "newData";
//you can see AA is a new object
print(AA, testAA);
//Work around to ensure data structures are in sync
testAA["test1"] = AA;
print(AA, testAA);
나는 언어로서의 JSL이이 행동을 기본값으로 원할 것이라고 생각하지 않는다. 나는 이것이 많은 새로운 프로그래머에게 혼란 스러울 수 있고 특히 JSL은 많은 프로그래머가 아닌 엔트 워스트를 가지고 있다고 말한다. 그러나이 논리는 데이터 테이블에 적용됩니다. AKA :
test = New Table("Hello");
test2 = test;
test << New Column("NewColumn");
print(test2 << Get Column Names);
필요하다면 데이터 객체에 대한 참조를 만드는 다른 대입 연산자가 있다면 정말 좋을 것 같습니다. 이렇게하면 새 객체 또는 다른 객체에 대한 참조를 원할 경우 선택할 수 있습니다. 주제에 대한 다른 사람들의 생각에 관심이 있습니다. 또한, 나는 완전히 잘못 될 수 있으며 연관 배열을 해킹하여 내가 아직 발견하지 못한 방법이있을 수 있습니다.
감사!