函数不返回Dart语言中的值

时间:2018-10-30 21:23:10

标签: api asynchronous dart linear-search

我正在尝试将我的应用连接到API并使用该API进行搜索。如果搜索成功并且找到了名称,它将返回Success,否则将返回Failed,但不会返回任何内容。

import 'dart:convert';
import 'package:http/http.dart' as http;

main() {
 getData();
}


String linearSearch(List<dynamic> list, String x) {
  for (var i = 0; i < list.length; i++){
    if(x == list[i]["name"]){
      return 'Success';
    }
  }
  return 'Failed';
}

void getData() async {
  List data;
  var response = await    
  http.get("http://localhost:3000/data");
  data = jsonDecode(response.body);
  linearSearch(data, 'karim');
}

2 个答案:

答案 0 :(得分:3)

您的函数返回String值,没有任何附加值。您只需要将函数的结果分配给String变量,并在需要时对其进行处理。 或者您也可以打印功能的结果

void getData() async {
  List data;
  var response = await    
  http.get("http://localhost:3000/data");
  data = jsonDecode(response.body);
  print(linearSearch(data, 'karim'));
}

答案 1 :(得分:-2)

通过编辑我的linearSearch函数来解决

linearSearch(List<dynamic> list, String x) {
for (var i = 0; i < list.length; i++){
if(x == list[i]["name"]){
  return print('Success');
}
}
return print('Failed');
}