将分配返回到全局变量

时间:2020-10-25 16:35:42

标签: function return global-variables

我有一个简短的问题

两者之间的区别是什么


void openDropdown() {
      GestureDetector detector;
      void searchForGestureDetector(BuildContext element) {
        element.visitChildElements((element) {
          if (element.widget != null && element.widget is GestureDetector) {
            detector = element.widget;
            return false;
          } else {
            searchForGestureDetector(element);
          }

          return true;
        });
      }

      searchForGestureDetector(CustomerDropdownKey.currentContext);
      assert(detector != null);

      detector.onTap();
    }
    final dropdown = Row(
      crossAxisAlignment: CrossAxisAlignment.center,
      children: <Widget>[
      Expanded(
      child:
        DropdownSearch<Customer>(
          key: CustomerDropdownKey,
          searchBoxController: TextEditingController(text: ''),
          mode: Mode.MENU,
          isFilteredOnline: false,
          showClearButton: false,
          showSearchBox: true,
          //dropDownButton: ,
          searchBoxDecoration: InputDecoration(
              hintText:'Search Customer',
              contentPadding: EdgeInsets.fromLTRB(12, 12, 0, 0),
              border: OutlineInputBorder()
          ),
          dropdownSearchDecoration: InputDecoration(
            contentPadding: EdgeInsets.fromLTRB(5, 0, 0, 0),
          ),
          //emptyBuilder:_customEmptyBuilderCustomer,
          selectedItem:sel_cust,
          onFind: (String filter) => Customers().testgetCustomerDetail(filter),
          //onFind: (String filter) => CustomerData,
          emptyBuilder: (BuildContext context, String Msg) =>
              EmptyBuilderCustomer(
                Msg: Msg,
              ),
          dropdownBuilder: (BuildContext context, Customer item, String itemDesignation) =>
              CustomDropDownCustomer(
                item: item,
                itemDesignation: itemDesignation,
              ),
          popupItemBuilder: (BuildContext context, Customer item, bool isSelected) =>
              PopupItemBuilderCustomer(
                item: item,
                isSelected: true,
              ),
          //dropdownBuilder: _customDropDownCustomer,
          //popupItemBuilder: _customPopupItemBuilderCustomer,
          onChanged: (Customer value) {
            print('onchanged');
            if(value == null) {
              sel_cust = null;
            }
            else {
              for (int i = 0; i < custList.length; i++) {
                print('loop');
                if (value.custid == custList[i].custid) {
                  print('in');
                  setState(() {
                    sel_cust = custList[i];
                  });
                  break;
                }
              }
            }
          },
        ))]);
Column(
                            mainAxisSize: MainAxisSize.min,
                            children: <Widget>[
                              Offstage(child: dropdown),
                              FlatButton(onPressed: openDropdown, child: Text('CLICK ME')),
                            ],
                          ),

vs

let a;
function assign(){
return a=5;
}

assign() 

我知道第一个选项返回值,第二个否,但是在两种情况下,let a; function assign(){ a=5; } assign() 将被函数主体中使用的a符号覆盖。还有更多吗?

0 个答案:

没有答案
相关问题