小编Tru*_*inh的帖子

在ArangoDB中,将使用过滤器从邻居查询是否在O(n)中完成?

我一直在阅读Aql 图形操作图形,并没有找到SQL-Traverse用例的具体示例和性能解释.

例如:

如果我有一个集合用户,它与集合公司公司关系

收藏公司有关系的位置,以集合地点 ;

收集位置是城市,国家或地区,并且与城市,国家,地区有关系.

现在,我想查询属于德国或欧盟公司的所有用户.

SELECT from Users where Users.company.location.city.country.name="Germany";
SELECT from Users where Users.company.location.city.parent.name="Germany";
Run Code Online (Sandbox Code Playgroud)

要么

SELECT from Users where Users.company.location.city.country.region.name="europe";
SELECT from Users where Users.company.location.city.parent.parent.name="europe";
Run Code Online (Sandbox Code Playgroud)

假设Location.name被编入索引,可以我已经两个查询上面执行为O(n) ,与Ñ是文档的数量在地点(O(1)对于图遍历,O(n)的索引扫描)?

当然,我可以直接在公司中保存regionNamecountryName,因为这些城市和国家都在欧盟,不像其他地方,不会改变,但如果......你知道我的意思(开玩笑)如果我有其他需要不断更新的用例怎么办?

graph-databases arangodb

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

在Flutter上测试shared_preferences

我正在编写一个不稳定的应用程序,并且在编写测试时遇到了这个问题。该方法应该将数据写入TextFields并点击一个将数据保存在SharedPrefs中的按钮:

testWidgets('Click on login saves the credentials',
      (WidgetTester tester) async {

    await tester.pumpWidget(MyApp());

    await tester.enterText(find.byKey(Key('phoneInput')), 'test');
    await tester.enterText(find.byKey(Key('passwordInput')), 'test');
    await tester.tap(find.byIcon(Icons.lock));

    SharedPreferences prefs = await SharedPreferences.getInstance();
    expect(prefs.getString('phone'), 'test');
    expect(prefs.getString('password'), 'test');
  });
Run Code Online (Sandbox Code Playgroud)

此测试将无法获得具有以下错误的SharedPreferences实例:

The following TimeoutException was thrown running a test:
TimeoutException after 0:00:03.500000: The test exceeded the timeout. It may have hung.
Consider using "addTime" to increase the timeout before expensive operations.
Run Code Online (Sandbox Code Playgroud)

更新:似乎问题实际上不是超时,因为即使60秒测试也无法解决SharedPreferences实例。

testing sharedpreferences flutter

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

如何在扑扑中实现字母滚动

有没有什么插件或方法可以在flutter中实现这种滚动?

具体来说,请在右侧的字母列中进行突出显示,例如突出显示当前字母,或者如果点击了某个字母,则滚动视图将直接转到该字母标题。

为了按字母顺序排序,我们可以使用List.sort(),对于粘性标题,我们也有一些不错的插件。

联系人列表iamge

dart flutter

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

在Dart中处理字素簇

据我所知,Dart不支持字素簇,尽管有人说支持它:

在实施之前,通过字素簇进行迭代的选择有哪些?例如,如果我有这样的字符串:

String family = '\u{1F468}\u{200D}\u{1F469}\u{200D}\u{1F467}'; // ??
String myString = 'Let me introduce my $family to you.';
Run Code Online (Sandbox Code Playgroud)

在五个代码点的家庭表情符号后面有一个光标:

在此处输入图片说明

如何将光标向左移动一个用户可感知的字符?

(在这种特殊情况下,我知道了字素簇的大小,因此我可以做到,但是我真正要问的是找到任意长的字素簇的长度。)

更新资料

我从本文中看到,Swift使用了系统的ICU库。Flutter中可能有类似的可能。

补充代码

对于那些想玩我上面的示例的人,这里是一个演示项目。按钮将光标向右或向左移动。当前需要按8个按钮才能将光标移到家庭表情符号上。

在此处输入图片说明

主镖

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Grapheme cluster testing')),
        body: BodyWidget(),
      ),
    );
  }
}

class BodyWidget extends StatefulWidget {
  @override
  _BodyWidgetState createState() => _BodyWidgetState();
}

class _BodyWidgetState extends State<BodyWidget> {

  TextEditingController …
Run Code Online (Sandbox Code Playgroud)

unicode icu dart flutter grapheme-cluster

4
推荐指数
2
解决办法
408
查看次数

Flutter 仅按需填充 ExpansionTile 数据(一个 Future 对象),而不是在初始化时

我能够从 REST/JSON 填充 ListView 和 ExpansionTiles,这很好,但我希望扩展块最初不被填充,并且只能在单击时单独填充(可能使用 onExpansionChanged :)

我有以下内容,它几乎可以像我想要的那样工作,除了它填充 ListView,然后由于每个 ExpansionTile 内的 FutureBuilder,它立即(自动)填充扩展图块。

如何更改此设置,以便在单独单击/展开 ExpansionTiles 之前不会填充它们?

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'ExpansionTile Test',
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  Future<http.Response> _responseFuture;

  @override
  void initState() {
    super.initState();
    _responseFuture = …
Run Code Online (Sandbox Code Playgroud)

listview future dart flutter

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