小编Con*_*nor的帖子

使用 Lambda 更新可组合函数

在以下网址的 Android 开发人员文档中:https ://developer.android.com/jetpack/compose/mental-model#recomposition

有一个可组合函数,如下所示:

@Composable
fun ClickCounter(clicks: Int, onClick: () -> Unit) {
    Button(onClick = onClick) {
        Text("I've been clicked $clicks times")
    }
}
Run Code Online (Sandbox Code Playgroud)

文中提到,这会生成一个元素,每次单击该元素都会更新其被单击的次数。然而,看看它,似乎需要一个 lambda 函数来做到这一点。

当我尝试将其放入 SetContent 函数时,我得到以下结果:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            WorkTimerTheme {
                Conversation(SampleData.conversationSample)
                ClickCounter(clicks = 0) {
                    //Insert My Function Here
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该评论//Insert My Function Here是我添加的。我认为在其中我必须放置一个 Lambda 来更新可组合项的点击值,但我不知道要放置什么。有谁知道写这个的可接受的方式?

lambda android kotlin android-jetpack android-jetpack-compose

6
推荐指数
1
解决办法
3484
查看次数

如何检查 Numpy 数组的每一行是否包含在辅助数组中?

我的问题类似于测试 Numpy 数组是否包含给定的行,但我需要对链接问题中提供的方法进行非平凡的扩展;链接的问题是询问如何检查数组中的每一行是否与另一行相同。这个问题的重点是对许多行这样做,其中一个显然不会跟随另一个。

说我有一个数组:

array = np.array([[1, 2, 4], [3, 5, 1], [5, 5, 1], [1, 2, 1]])
Run Code Online (Sandbox Code Playgroud)

我想知道这个数组的每一行是否在由以下给出的辅助数组中:

check_array = np.array([[1, 2, 4], [1, 2, 1]])
Run Code Online (Sandbox Code Playgroud)

理想情况下,这看起来像这样:

is_in_check = array in check_array
Run Code Online (Sandbox Code Playgroud)

其中 is_in_check 看起来像这样:

is_in_check = np.array([True, False, False, True])
Run Code Online (Sandbox Code Playgroud)

我意识到对于非常小的数组,使用列表理解或类似的东西会更容易,但是该过程必须对 10 6行的数组具有高性能。

我已经看到检查单行的正确方法是:

is_in_check_single = any((array[:]==[1, 2, 1]).all(1))
Run Code Online (Sandbox Code Playgroud)

但理想情况下,我想将其概括为多行,以便对过程进行矢量化。

在实践中,我希望看到每个数组的以下维度:

array.shape = (1000000, 3)
check_array.shape = (5, 3)
Run Code Online (Sandbox Code Playgroud)

python arrays numpy vectorization

2
推荐指数
1
解决办法
81
查看次数

Haskell 中“[_]”模式的含义是什么?

在 Haskell 中创建模式匹配时,是否执行以下模式匹配:

function [_] = []
Run Code Online (Sandbox Code Playgroud)

意思相同:

function (x:xs) = []
Run Code Online (Sandbox Code Playgroud)

如果不是,这个[_]图案意味着什么?

haskell pattern-matching

2
推荐指数
1
解决办法
191
查看次数

是否可以在 strcpy 中创建字符数组?

是否可以使用 C 复制字符串strcpy而不先将内存分配给 a char *character_array

基本上,是这样的可能:

strcpy(char *my_string, another_string);
Run Code Online (Sandbox Code Playgroud)

其中my_string成为与 具有相同长度和内容的初始化字符串another_string

c memory string initialization strcpy

2
推荐指数
1
解决办法
69
查看次数

Haskell 运算符 * 是 + 运算符的组合吗?

Haskell 是如何*工作的?它会创建一系列+运算符,还是会执行其他操作?

haskell operators

1
推荐指数
1
解决办法
174
查看次数

如何找到 Numpy 数组中具有某个值 X 的百分比?

假设我有一个 numpy 数组:

array = np.array(['Fe', 'Pt', 'Ce', 'Nd', 'Pt', 'Fe', ..., 'Pt', 'Ce', 'Fe', 'Fe'])
Run Code Online (Sandbox Code Playgroud)

其中数组中的每个条目都是“Fe”、“Pt”、“Ce”或“Nd”。我了解如何获取单个条目的百分比,例如:

percentage = np.sum(array = 'Fe')/array.shape[0]*100
Run Code Online (Sandbox Code Playgroud)

但是,如果我想获取每个唯一字符串值的百分比怎么办?有没有一种方法可以向量化该操作并将其概括为任意数量的唯一字符串值?

理想情况下我想要这样的东西:

percentages = np.some_operation(array)
Run Code Online (Sandbox Code Playgroud)

它产生如下输出:

percentages = {'Fe': 25, 'Pt': 15, 'Nd': 45, 'Ce': 15}
Run Code Online (Sandbox Code Playgroud)

它不一定是字典的形式,只要清楚哪个百分比属于哪个元素即可。我打算处理的数组长度可能为 1,000 到 1,000,000 个条目。

python arrays numpy vectorization percentage

0
推荐指数
1
解决办法
6337
查看次数

你能对数组的一部分进行排序吗?

我想要qsort一个整数数组中的前 100 个元素,而其余元素保持不变。

我目前正在尝试通过以下调用来做到这一点:

int cmpfunc(const void *a, const void *b)
{
  int xi = *(const int *) a;
  int yi = *(const int *) b;
  
  return (xi - yi);
}

int my_array[100+some_size];
memset(my_array, 0, sizeof(my_array));
qsort(my_array, 100, sizeof(int), cmpfunc);
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了分段错误。x在 C 中可以对数组的第一个值进行排序吗?

c arrays sorting comparison qsort

-1
推荐指数
1
解决办法
219
查看次数