小编use*_*613的帖子

在Perl中,如何在子例程之间共享变量,使用严格?

如果我没有use strict;,以下代码工作正常并打印出"alice":

assign_name();
print_name();

sub assign_name {
    $name = "alice";
}

sub print_name {
    print $name;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我use strict;知道我必须在使用之前声明变量.我读了一些我应该使用的地方our而不是my声明一个全局变量.所以我有以下几点:

use strict;
use warnings;

assign_name();
print_name();

sub assign_name {
    our $name = "alice";
}

sub print_name {
    print $name;   # This is line 12.

}
Run Code Online (Sandbox Code Playgroud)

然后我收到以下错误:

Variable "$name" is not imported at test.pl line 12.
Global symbol "$name" requires explicit package name at test.pl line 12.
Execution of test.pl aborted due to compilation …
Run Code Online (Sandbox Code Playgroud)

perl use-strict

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

如何在Flutter中制作Alert Dialog晃动动画

我想像这样摇动警报对话框:(不仅是文本,还有整个弹出对话框)

https://www.youtube.com/watch?v=IaHMoifUBSw

当用户单击按钮时,如何震动整个警报对话框?

dart flutter flutter-layout flutter-animation flutter-alertdialog

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

编译器优化的限制是什么?它有多聪明?

人们一直告诉我而不是写"向左移1位",只写"倍数2",因为它更具可读性,编译将足够聪明以进行优化.

通常还会编译什么,开发人员不应该这样做(代码可读性)?我总是写,string.length == 0而不是string == ""因为我在5 - 6年前的某个地方读过,说数字操作要快得多.这仍然是真的吗?

或者,大多数编译器都足够聪明以转换以下内容:

int result = 0; for (int i = 0; i <= 100; i++) { result += i; }

进入:int result = 5050;

您最喜欢的"优化"是什么,因为大多数编译都不会这样做?

compiler-construction optimization

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

从比最低要求更高的API级别调用API

我写了一个应用程序的大部分,最小API级别设置为7.我想从8级调用单个API.具有较低版本的android的用户将在没有这个"额外功能"的情况下生存.

目前我添加了@SuppressLint("NewApi")以便我的代码可以运行; 我在API 14上测试它.一切正常.

我想知道该应用程序在API 7设备上的行为.这一行会被忽略吗?我的应用会崩溃吗?该应用是否会被Google Play过滤,因此无法安装?

我想在较低的设备上忽略这一行.

android

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

将不同类型的Dictionary的重载组合成一个函数

我需要一个辅助函数来将字符串转换"1=alice;2=bob;3=charlie"为a Dictionary<int, string>,将字符串转换"1=true;2=false;3=true"为a Dictionary<int, bool>等等.

为此,我编写了许多辅助函数,它们基本上是相互复制和粘贴的:

    private static void load(Dictionary<int, string> dict, string s)
    {
        dict.Clear();
        string[] items = s.Split(';');
        foreach (string item in items)
        {
            if (item.Contains("="))
            {
                string[] kv = item.Split('=');
                dict[int.Parse(kv[0])] = kv[1];
            }
        }
    }

    private static void load(Dictionary<int, bool> dict, string s)
    {
        dict.Clear();
        string[] items = s.Split(';');
        foreach (string item in items)
        {
            if (item.Contains("="))
            {
                string[] kv = item.Split('=');
                dict[int.Parse(kv[0])] = bool.Parse(kv[1]);
            }
        }
    }

    private static …
Run Code Online (Sandbox Code Playgroud)

c# dictionary

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

为什么我不能在箭头函数中省略getElementById()的参数?

假设我<img>在页面上有3个标签,我想将这些作为一个数组,所以我写道:

let myArray = ['img1', 'img2', 'img3'].map(id => document.getElementById(id));

......运作良好.

然后我想,嘿,getElementById只拿了一个参数.是不是有语法糖?所以我写道:

let myArray = ['img1', 'img2', 'img3'].map(document.getElementById);

......但那没用.我在Chrome上收到了"非法调用".

所以它不是语法糖.这些背后的原因是什么?

javascript ecmascript-6

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

在get方法flutter中,'String'类型不是'Null'类型的子类型

我收到此错误:在 get 方法 flutter 中,“String”类型不是“Null”类型的子类型

这是我使用的 get api 函数

 Future<Stream<ServiceTypes>> getServiceTypesa() async {
 final String url = 'https://test.com';

 final client = new http.Client();
 final streamedRest = await client.send(
   http.Request('get', Uri.parse(url))
 );

 return streamedRest.stream 
     .transform(utf8.decoder)
     .transform(json.decoder)
     .expand((data) => (data as List))
     .map((data) => ServiceTypes.fromJson(data));
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到函数检测数据

来自 json 的数据

我也看到了这个错误

StateError(错误状态:Stream 已被监听。)

和这个错误

错误

这是我的聆听功能

  @override
  void initState() {
    _serviceTypes = new List<ServiceTypes>();
    listenForServiceTypes();
    super.initState();
  }

  void listenForServiceTypes() async {
    setState(() {
      this._show_serviceTypesProgress = true;
    });
    final Stream<ServiceTypes> stream = await getServiceTypesa();

    stream.listen((ServiceTypes serviceTypes) => …
Run Code Online (Sandbox Code Playgroud)

api get flutter flutter-dependencies

2
推荐指数
3
解决办法
2万
查看次数

C# - 验证字符串是否是int.TryParse()以外的数字的更好方法?

我发现自己经常需要用来int.TryParse()测试一个值是否为整数.但是,在使用TryParse时,我必须将引用变量传递给函数.所以我发现自己总是需要创建一个temp int来传入.通常它看起来像:

int my_temp_integer;

int.TryParse(potential_integer, my_temp_integer);

考虑到我想要的只是一个简单的真/假响应,我觉得这很麻烦,我不关心实际的解析结果.有没有更好的方法来解决这个问题?为什么没有一个重载函数,我可以传递我想要测试的值并获得真/假响应?

谢谢.

c# type-conversion

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

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

如何制作几个RelativeLayouts,每个都占据屏幕的一部分?

我希望在另一个全屏相对布局中有一个相对布局,占据其父宽度的50%,最好是用XML而不是java代码.

我已经弄清楚如何对齐父母的中心,以及如何填充宽度,但有没有办法获得父母身高的50%?30%左右?6.2834%?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="??????????"
        android:layout_centerInParent="true" >
Run Code Online (Sandbox Code Playgroud)

我试图做百分比的原因是,如果我用"dip"指定它,而对象将保持相同的大小,布局在不同的屏幕尺寸(例如手机和平板电脑)上看起来会有很大不同.

编辑:

感谢您关于使用LinearLayout和加权的所有答案.我之前也看过那个.我觉得我可能过度简化了这个问题.说我需要这样的东西:

在此输入图像描述

我想我可以使用复杂的LinearLayout和加权来勾勒出中心正方形,然后将中心正方形设置为fill_parent,如下所示:

在此输入图像描述

但那么我应该怎么做其他3个方格(布局)?我可以为另一个方块设置另一个LinearLayout"层"吗?或者我应该将整个屏幕分成许多很小的小区,并将这些子布局划分到多个小区(不确定这是否可能)?

android android-layout

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

Javascript提供不正确的比较结果

我简化了遇到的问题:

例如,Chrome浏览器,按F12,然后在控制台中键入以下内容:

a=(0.005/10000).toExponential();
"5e-7"
  b=(0.04/10000).toExponential();
"4e-6"
  a<b
false
  a>b
true
  a.valueOf < b.valueOf
false
  a.valueOf() < b.valueOf()
false
  valueOf(a) < valueOf(b)
false
Run Code Online (Sandbox Code Playgroud)

在这种情况下,<b应该为真.以上所有布尔值都不正确.怎么样?

javascript

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