我现在正在学习 Dart,并且正在研究 Dart 与 C 的互操作性。我能够使用带有两个 int 参数的 C 方法。代码如下:
你好.dart
import 'dart:ffi' as ffi;
typedef sum_func = ffi.Int32 Function(ffi.Int32 a, ffi.Int32 b);
typedef Sum = int Function(int a, int b);
...
final dylib = ffi.DynamicLibrary.open(path);
final sumPointer = dylib.lookup<ffi.NativeFunction<sum_func>>('sum');
final sum = sumPointer.asFunction<Sum>();
print('3 + 5 = ${sum(3, 5)}');
Run Code Online (Sandbox Code Playgroud)
你好ç
int sum(int a, int b){
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
你好.h
int add(int x, int y)
Run Code Online (Sandbox Code Playgroud)
你好.def
LIBRARY hello
EXPORTS
sum
Run Code Online (Sandbox Code Playgroud)
这一切都运行得很好,但我还想要一个maxC 方法,它将 int 数组作为输入并返回最大的数字。我怎样才能做到这一点?我已经用 C 实现了所有必需的代码,但我不确定如何将其与 …
本文说:小心JSX中的对象文字
一旦您的组件变得更"纯粹",您就会开始检测导致无用重新渲染的错误模式.最常见的是在JSX中使用对象文字,我喜欢称之为"臭名昭着的{{".让我给你举个例子:
import React from 'react';
import MyTableComponent from './MyTableComponent';
const Datagrid = (props) => (
<MyTableComponent style={{ marginTop: 10 }}>
...
</MyTableComponent>
)
Run Code Online (Sandbox Code Playgroud)
每次呈现组件时,组件的样式prop都会获得一个新值.因此,即使是纯粹的,也会在每次呈现时呈现.实际上,每次将对象文字作为prop传递给子组件时,都会破坏纯度.解决方案很简单:
import React from 'react';
import MyTableComponent from './MyTableComponent';
const tableStyle = { marginTop: 10 };
const Datagrid = (props) => (
<MyTableComponent style={tableStyle}>
...
</MyTableComponent>
)
Run Code Online (Sandbox Code Playgroud)
这看起来非常基本,但我已经多次看到这个错误了,我已经发现了检测臭名昭着的{{在JSX中.我经常用常量替换它.
所以我的问题是,是否有任何规则阻止在jsx中使用对象文字?
我想找一个,但还没有结果.