在release variant中构建react-native 应用程序时,我得到了Undefined symbols for architecture arm64分.我上个月在store 中部署了这个应用程序,没有任何问题,现在我做了一些更改,想更新它,但我无法构建它.

I have tried:
- Deleting .rncache
- Deleting DerivedData
- Deleting the Build Folder
- Removing libReact.a and adding it again
- Setting Dead Code Stripping to No
- Deleting node_modules and reinstalling them

Other solutions that i encountered that led me to setting:
- Valid architectures: arm64 armv7 armv7s
- Other Linker Flags: -ObjC -lc++
did not work either.
Can anyone help me with this problem ?

More specific info about the bug :

Undefined symbols for architecture arm64:
  "_JSClassCreate", referenced from:
      void std::__1::__call_once_proxy<std::__1::tuple<facebook::jsc::JSCRuntime::createObject(std::__1::shared_ptr<facebook::jsi::HostObject>)::$_0&&> >(void*) in libReact.a(JSCRuntime.o)
      void std::__1::__call_once_proxy<std::__1::tuple<facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::$_1&&> >(void*) in libReact.a(JSCRuntime.o)
  "_JSContextGetGlobalObject", referenced from:
      facebook::jsc::JSCRuntime::global() in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::HostFunctionMetadata::initialize(OpaqueJSContext const*, OpaqueJSValue*) in libReact.a(JSCRuntime.o)
  "_JSEvaluateScript", referenced from:
      facebook::jsc::JSCRuntime::evaluateJavaScript(std::__1::unique_ptr<facebook::jsi::Buffer const, std::__1::default_delete<facebook::jsi::Buffer const> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libReact.a(JSCRuntime.o)
  "_JSGlobalContextCreateInGroup", referenced from:
      facebook::jsc::JSCRuntime::JSCRuntime() in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::JSCRuntime() in libReact.a(JSCRuntime.o)
  "_JSGlobalContextRelease", referenced from:
      facebook::jsc::JSCRuntime::JSCRuntime() in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::~JSCRuntime() in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::JSCRuntime() in libReact.a(JSCRuntime.o)
  "_JSGlobalContextRetain", referenced from:
      facebook::jsc::JSCRuntime::JSCRuntime(OpaqueJSContext*) in libReact.a(JSCRuntime.o)
  "_JSObjectCallAsConstructor", referenced from:
      facebook::jsc::JSCRuntime::callAsConstructor(facebook::jsi::Function const&, facebook::jsi::Value const*, unsigned long) in libReact.a(JSCRuntime.o)
  "_JSObjectCallAsFunction", referenced from:
      facebook::jsc::JSCRuntime::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long) in libReact.a(JSCRuntime.o)
  "_JSObjectCopyPropertyNames", referenced from:
      facebook::jsc::JSCRuntime::getPropertyNames(facebook::jsi::Object const&) in libReact.a(JSCRuntime.o)
  "_JSObjectGetPrivate", referenced from:
      facebook::jsc::JSCRuntime::getHostObject(facebook::jsi::Object const&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::getHostFunction(facebook::jsi::Function const&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createObject(std::__1::shared_ptr<facebook::jsi::HostObject>)::HostObjectProxy::finalize(OpaqueJSValue*) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createObject(std::__1::shared_ptr<facebook::jsi::HostObject>)::HostObjectProxy::getProperty(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createObject(std::__1::shared_ptr<facebook::jsi::HostObject>)::HostObjectProxy::setProperty(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const*, OpaqueJSValue const**) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createObject(std::__1::shared_ptr<facebook::jsi::HostObject>)::HostObjectProxy::getPropertyNames(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSPropertyNameAccumulator*) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::HostFunctionMetadata::initialize(OpaqueJSContext const*, OpaqueJSValue*) in libReact.a(JSCRuntime.o)
      ...
  "_JSObjectGetProperty", referenced from:
      facebook::jsc::JSCRuntime::getProperty(facebook::jsi::Object const&, facebook::jsi::String const&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::getProperty(facebook::jsi::Object const&, facebook::jsi::PropNameID const&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::HostFunctionMetadata::initialize(OpaqueJSContext const*, OpaqueJSValue*) in libReact.a(JSCRuntime.o)
  "_JSObjectGetPropertyAtIndex", referenced from:
      facebook::jsc::JSCRuntime::getValueAtIndex(facebook::jsi::Array const&, unsigned long) in libReact.a(JSCRuntime.o)
  "_JSObjectGetPrototype", referenced from:
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::HostFunctionMetadata::initialize(OpaqueJSContext const*, OpaqueJSValue*) in libReact.a(JSCRuntime.o)
  "_JSObjectHasProperty", referenced from:
      facebook::jsc::JSCRuntime::hasProperty(facebook::jsi::Object const&, facebook::jsi::String const&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::hasProperty(facebook::jsi::Object const&, facebook::jsi::PropNameID const&) in libReact.a(JSCRuntime.o)
  "_JSObjectIsFunction", referenced from:
      facebook::jsc::JSCRuntime::isFunction(facebook::jsi::Object const&) const in libReact.a(JSCRuntime.o)
  "_JSObjectMake", referenced from:
      facebook::jsc::JSCRuntime::makeObjectValue(OpaqueJSValue*) const in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createObject(std::__1::shared_ptr<facebook::jsi::HostObject>) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>) in libReact.a(JSCRuntime.o)
  "_JSObjectMakeArray", referenced from:
      facebook::jsc::JSCRuntime::createArray(unsigned long) in libReact.a(JSCRuntime.o)
  "_JSObjectSetPrivate", referenced from:
      facebook::jsc::JSCRuntime::createObject(std::__1::shared_ptr<facebook::jsi::HostObject>)::HostObjectProxy::finalize(OpaqueJSValue*) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::HostFunctionMetadata::finalize(OpaqueJSValue*) in libReact.a(JSCRuntime.o)
  "_JSObjectSetProperty", referenced from:
      facebook::jsc::JSCRuntime::setPropertyValue(facebook::jsi::Object&, facebook::jsi::PropNameID const&, facebook::jsi::Value const&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::setPropertyValue(facebook::jsi::Object&, facebook::jsi::String const&, facebook::jsi::Value const&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createArray(unsigned long) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::HostFunctionMetadata::initialize(OpaqueJSContext const*, OpaqueJSValue*) in libReact.a(JSCRuntime.o)
  "_JSObjectSetPropertyAtIndex", referenced from:
      facebook::jsc::JSCRuntime::setValueAtIndexImpl(facebook::jsi::Array&, unsigned long, facebook::jsi::Value const&) in libReact.a(JSCRuntime.o)
  "_JSObjectSetPrototype", referenced from:
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::HostFunctionMetadata::initialize(OpaqueJSContext const*, OpaqueJSValue*) in libReact.a(JSCRuntime.o)
  "_JSPropertyNameAccumulatorAddName", referenced from:
      facebook::jsc::JSCRuntime::createObject(std::__1::shared_ptr<facebook::jsi::HostObject>)::HostObjectProxy::getPropertyNames(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSPropertyNameAccumulator*) in libReact.a(JSCRuntime.o)
  "_JSPropertyNameArrayGetCount", referenced from:
      facebook::jsc::JSCRuntime::getPropertyNames(facebook::jsi::Object const&) in libReact.a(JSCRuntime.o)
  "_JSPropertyNameArrayGetNameAtIndex", referenced from:
      facebook::jsc::JSCRuntime::getPropertyNames(facebook::jsi::Object const&) in libReact.a(JSCRuntime.o)
  "_JSPropertyNameArrayRelease", referenced from:
      facebook::jsc::JSCRuntime::getPropertyNames(facebook::jsi::Object const&) in libReact.a(JSCRuntime.o)
  "_JSStringCreateWithUTF8CString", referenced from:
      facebook::jsc::JSCRuntime::evaluateJavaScript(std::__1::unique_ptr<facebook::jsi::Buffer const, std::__1::default_delete<facebook::jsi::Buffer const> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::makeStringValue(OpaqueJSString*) const in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createPropNameIDFromAscii(char const*, unsigned long) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createPropNameIDFromUtf8(unsigned char const*, unsigned long) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createStringFromUtf8(unsigned char const*, unsigned long) in libReact.a(JSCRuntime.o)
      facebook::jsc::(anonymous namespace)::getLengthString() in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::HostFunctionMetadata::initialize(OpaqueJSContext const*, OpaqueJSValue*) in libReact.a(JSCRuntime.o)
      ...
  "_JSStringGetMaximumUTF8CStringSize", referenced from:
      facebook::jsc::(anonymous namespace)::JSStringToSTLString(OpaqueJSString*) in libReact.a(JSCRuntime.o)
  "_JSStringGetUTF8CString", referenced from:
      facebook::jsc::(anonymous namespace)::JSStringToSTLString(OpaqueJSString*) in libReact.a(JSCRuntime.o)
  "_JSStringIsEqual", referenced from:
      facebook::jsc::JSCRuntime::compare(facebook::jsi::PropNameID const&, facebook::jsi::PropNameID const&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::strictEquals(facebook::jsi::String const&, facebook::jsi::String const&) const in libReact.a(JSCRuntime.o)
  "_JSStringRelease", referenced from:
      facebook::jsc::JSCRuntime::evaluateJavaScript(std::__1::unique_ptr<facebook::jsi::Buffer const, std::__1::default_delete<facebook::jsi::Buffer const> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::JSCStringValue::invalidate() in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createPropNameIDFromAscii(char const*, unsigned long) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createPropNameIDFromUtf8(unsigned char const*, unsigned long) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createValue(OpaqueJSValue const*) const in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::HostFunctionMetadata::initialize(OpaqueJSContext const*, OpaqueJSValue*) in libReact.a(JSCRuntime.o)
  "_JSStringRetain", referenced from:
      facebook::jsc::JSCRuntime::JSCStringValue::JSCStringValue(OpaqueJSString*, std::__1::atomic<long>&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::JSCStringValue::JSCStringValue(OpaqueJSString*, std::__1::atomic<long>&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::makeStringValue(OpaqueJSString*) const in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>) in libReact.a(JSCRuntime.o)
  "_JSValueIsArray", referenced from:
      facebook::jsc::JSCRuntime::isArray(facebook::jsi::Object const&) const in libReact.a(JSCRuntime.o)
  "_JSValueIsBoolean", referenced from:
      facebook::jsc::JSCRuntime::createValue(OpaqueJSValue const*) const in libReact.a(JSCRuntime.o)
  "_JSValueIsInstanceOfConstructor", referenced from:
      facebook::jsc::JSCRuntime::instanceOf(facebook::jsi::Object const&, facebook::jsi::Function const&) in libReact.a(JSCRuntime.o)
  "_JSValueIsNull", referenced from:
      facebook::jsc::JSCRuntime::createValue(OpaqueJSValue const*) const in libReact.a(JSCRuntime.o)
  "_JSValueIsNumber", referenced from:
      facebook::jsc::JSCRuntime::createValue(OpaqueJSValue const*) const in libReact.a(JSCRuntime.o)
  "_JSValueIsObject", referenced from:
      facebook::jsc::JSCRuntime::createValue(OpaqueJSValue const*) const in libReact.a(JSCRuntime.o)
  "_JSValueIsObjectOfClass", referenced from:
      facebook::jsc::JSCRuntime::isHostObject(facebook::jsi::Object const&) const in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::isHostFunction(facebook::jsi::Function const&) const in libReact.a(JSCRuntime.o)
  "_JSValueIsString", referenced from:
      facebook::jsc::JSCRuntime::createValue(OpaqueJSValue const*) const in libReact.a(JSCRuntime.o)
  "_JSValueIsUndefined", referenced from:
      facebook::jsc::JSCRuntime::createValue(OpaqueJSValue const*) const in libReact.a(JSCRuntime.o)
  "_JSValueMakeBoolean", referenced from:
      facebook::jsc::JSCRuntime::valueRef(facebook::jsi::Value const&) in libReact.a(JSCRuntime.o)
  "_JSValueMakeNull", referenced from:
      facebook::jsc::JSCRuntime::valueRef(facebook::jsi::Value const&) in libReact.a(JSCRuntime.o)
  "_JSValueMakeNumber", referenced from:
      facebook::jsc::JSCRuntime::valueRef(facebook::jsi::Value const&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createArray(unsigned long) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::HostFunctionMetadata::initialize(OpaqueJSContext const*, OpaqueJSValue*) in libReact.a(JSCRuntime.o)
  "_JSValueMakeString", referenced from:
      facebook::jsc::JSCRuntime::valueRef(facebook::jsi::Value const&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::HostFunctionMetadata::initialize(OpaqueJSContext const*, OpaqueJSValue*) in libReact.a(JSCRuntime.o)
  "_JSValueMakeUndefined", referenced from:
      facebook::jsc::JSCRuntime::valueRef(facebook::jsi::Value const&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createObject(std::__1::shared_ptr<facebook::jsi::HostObject>)::HostObjectProxy::getProperty(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::HostFunctionMetadata::call(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) in libReact.a(JSCRuntime.o)
  "_JSValueProtect", referenced from:
      facebook::jsc::JSCRuntime::JSCObjectValue::JSCObjectValue(OpaqueJSContext*, std::__1::atomic<bool> const&, OpaqueJSValue*, std::__1::atomic<long>&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::JSCObjectValue::JSCObjectValue(OpaqueJSContext*, std::__1::atomic<bool> const&, OpaqueJSValue*, std::__1::atomic<long>&) in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::makeObjectValue(OpaqueJSValue*) const in libReact.a(JSCRuntime.o)
  "_JSValueToBoolean", referenced from:
      facebook::jsc::JSCRuntime::createValue(OpaqueJSValue const*) const in libReact.a(JSCRuntime.o)
  "_JSValueToNumber", referenced from:
      facebook::jsc::JSCRuntime::createValue(OpaqueJSValue const*) const in libReact.a(JSCRuntime.o)
  "_JSValueToObject", referenced from:
      facebook::jsc::JSCRuntime::createValue(OpaqueJSValue const*) const in libReact.a(JSCRuntime.o)
      facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::HostFunctionMetadata::initialize(OpaqueJSContext const*, OpaqueJSValue*) in libReact.a(JSCRuntime.o)
  "_JSValueToStringCopy", referenced from:
      facebook::jsc::JSCRuntime::createValue(OpaqueJSValue const*) const in libReact.a(JSCRuntime.o)
  "_JSValueUnprotect", referenced from:
      facebook::jsc::JSCRuntime::JSCObjectValue::invalidate() in libReact.a(JSCRuntime.o)
  "_kJSClassDefinitionEmpty", referenced from:
      void std::__1::__call_once_proxy<std::__1::tuple<facebook::jsc::JSCRuntime::createObject(std::__1::shared_ptr<facebook::jsi::HostObject>)::$_0&&> >(void*) in libReact.a(JSCRuntime.o)
      void std::__1::__call_once_proxy<std::__1::tuple<facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>)::$_1&&> >(void*) in libReact.a(JSCRuntime.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

推荐答案

确保将JavaScriptCore.framework添加到Link Binary With Libraries

React-native相关问答推荐

使用FETCH发送BLOB/文件时为空

导航堆栈不显示

每当我在 React Native Tab Navigator 中切换标签时触发 UseEffect

react-native 根据状态隐藏显示按钮

我们在react钩子中还需要功能性的 setState 方式吗?

如何在 React Navigation 5 中将父函数传递给子屏幕?

React Native:在ScrollView中更改焦点时键盘关闭

什么时候适合在 React 中使用构造函数?

react-native alignSelf 中心并拉伸到 maxWidth?

React-native 在浏览器中打开链接并返回应用程序

如何在 react-native 中在子级和父级之间传递数据?

如何判断 goBack() 函数在react-navigation 中是否可行?

React Native - 用分机拨打电话号码

No such property: ABI for class: org.gradle.api.tasks.OutputFile

React Nativedropped so far性能监视器计数不断增加

如何在 Expo 和 React Native 中使用绝对路径导入?

对未计算文件的本机Bundle sha-1 做出react(无法从assets index.android.bundle 加载脚本)

Gradlew bundleRelease 不会在 react-native 中生成发布 apk

React Native 必须双击才能使 onPress 工作

NavigationActions.reset 不是函数吗?