네온 JsArray를 사용할 수 없음 :이 함수는 3 개의 매개 변수를 사용하지만 2 개가 제공되었습니다.

Pietrovismara

네온 사용법을 배우고 있는데 이해가 안 돼요. 이 코드를 실행하려고하면 :

#[macro_use]
extern crate neon;
use neon::vm::{Call, JsResult};
use neon::mem::Handle;
use neon::js::{JsInteger, JsNumber, JsString, JsObject, JsArray, JsValue, Object, Key};
use neon::js::error::{JsError, Kind};

fn test(call: Call) -> JsResult<JsArray> {
    let scope = call.scope;
    let js_arr: Handle<JsArray> = try!(try!(call.arguments.require(scope, 1)).check::<JsArray>());

    js_arr.set(0, JsNumber::new(scope, 1000));

    Ok(js_arr)
}

register_module!(m, {
    m.export("test", test)
});

전화 할 때이 오류가 발생합니다 js_arr.set.This function takes 3 parameters but 2 were supplied.

나는 JsArray. Racer조차도 set 메소드가 2 개의 매개 변수를 취한다고 말합니다. 상관없이 무엇을, js_arr.set이 순서대로 3 개 매개 변수를 사용합니다 &mut bool, neon::macro_internal::runtime::raw::Local하고 neon::macro_internal::runtime::raw::Local.

무슨 일이야? 어떻게 JsArray작동 하는지 이해할 수 없습니다 .

셰프 마스터

으로 paulsevere는 네온을위한 GitHub의 문제에 말한다 , 수입 neon::js::Object. 또한 다음 메서드 도 제공하는을 가져 오지 마십시오 .Keyset

#[macro_use]
extern crate neon;

use neon::vm::{Call, JsResult};
use neon::js::{Object, JsArray, JsInteger, JsObject, JsNumber};

fn make_an_array(call: Call) -> JsResult<JsArray> {
    let scope = call.scope; // the current scope for rooting handles
    let array = JsArray::new(scope, 3);
    array.set(0, JsInteger::new(scope, 9000))?;
    array.set(1, JsObject::new(scope))?;
    array.set(2, JsNumber::new(scope, 3.14159))?;
    Ok(array)
}

register_module!(m, {
    m.export("main", make_an_array)
});

이것은 새로운 어레이를 생성합니다. 함수의 첫 번째 인수로 배열을 수락하고 수정하려면 다음과 같이 작동합니다.

#[macro_use]
extern crate neon;

use neon::vm::{Call, JsResult};
use neon::js::{Object, JsArray, JsInteger, JsUndefined};
use neon::mem::Handle;

fn hello(call: Call) -> JsResult<JsUndefined> {
    let scope = call.scope;
    let js_arr: Handle<JsArray> = call.arguments.require(scope, 0)?.check::<JsArray>()?;

    js_arr.set(0, JsInteger::new(scope, 1000))?;

    Ok(JsUndefined::new())
}

register_module!(m, {
    m.export("hello", hello)
});

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

TOP 리스트

뜨겁다태그

보관