네온 사용법을 배우고 있는데 이해가 안 돼요. 이 코드를 실행하려고하면 :
#[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
. 또한 다음 메서드 도 제공하는을 가져 오지 마십시오 .Key
set
#[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] 삭제
몇 마디 만하겠습니다