标签: programming-languages

参数检查调用者和被调用者之间的责任?

一般来说,在呼叫者应保证形成良好的数据传送到所调用的方法(因此所调用的方法假定数据始终有效)或是称为应该携带数据验证方法?每种方法的优缺点是什么?

this.data = user.input;

// Caller check data
if (!this.data) throw new Exception("Data cannot be null.");
obj.consume(this.data);

public void consume(data)
{
   // Called check data
   if (!data) throw new Exception("data cannot be null.");
}
Run Code Online (Sandbox Code Playgroud)

methods design-patterns programming-languages call

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

在"Scanf"中观察到的新事物

通常,'scanf'语法通常显示为scanf(,arg1,arg2,arg3,...);

但即使格式字符是%d,%s,%c ...,但我注意到一个新的格式字符,如

程序代码中的"%[^ \n]"为scanf("%[^ \n]",ptr),"%[^ \n]"指定了什么,是一个新的格式字符

如果这个问题不合适,我很抱歉,非常感谢

c programming-languages

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

在Java内部原始布尔值被视为-1?

在论坛的另一天,我对原始的布尔数据类型进行了讨论.有一个人说,ALL语言true内部(或本地)被视为-1.这是真的吗?

PD:我们特别谈论Java

java programming-languages

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

有史以来最小的编译器

昨天,我在这篇关于编程语言的文章中坚持上网BrainFuck. http://www.muppetlabs.com/~breadbox/bf/

所以我很奇怪这是什么

  Brainfuck is the ungodly creation of Urban Müller, whose goal was apparently 
to create a Turing-complete language for which he could write the smallest
compiler ever, for the Amiga OS 2.0.  His compiler was 240 bytes in size. 
(Though he improved upon this later -- he informed me at one point that
he had managed to bring it under 200 bytes.)
Run Code Online (Sandbox Code Playgroud)

那么,今天真的是图灵完整编程语言的最小编译器吗?是否证明了小编译器不存在?

这方面有什么结果吗?它真的让我感兴趣,图灵完整的编程语言的编纂是否有任何最小的价值,这是什么价值?

compiler-construction programming-languages turing-complete brainfuck

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

是否有任何主要的编程语言不支持任何形式的反射?

维基百科将反思定义如下:

在计算机科学中,反射是计算机程序可以观察(进行内省)并在运行时修改自己的结构和行为的过程.[1]

是否有任何主要的编程语言(在学术界或工业界广泛使用)不支持任何形式的反思?我目前想到的所有例子都至少得到了有限的支持.但对于C,我不能确定.

c reflection programming-languages

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

lambda中的alpha转换

为什么C#不支持alpha转换?

int n = 3;
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
int oddNumbers = numbers.Count(n => n % 2 == 1);
Console.Out.WriteLine("N value = " + n);
Run Code Online (Sandbox Code Playgroud)

产量:

名为'n'的局部变量不能在此范围内声明,因为它会给'n'赋予不同的含义,'n'已在'父或当前'范围内用于表示其他内容

有没有我不知道的颗粒原因,因为它听起来很傻?

c# lambda programming-languages lexical-scope

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

Perl:后期Coderef参数的语法糖?

使用子原型,我们可以定义我们自己的看起来像map或grep的subs.也就是说,第一个coderef参数的语法比普通的匿名子语言短.例如:

sub thunked (&) { $_[0] }

my $val = thunked { 2 * 4 };
Run Code Online (Sandbox Code Playgroud)

这里工作得很好,因为第一个参数是coderef.但是对于后面的参数,它很简单,不能正确解析.

我制作了一个with子程序,旨在使GTK2代码更清晰.它看起来像这样(未经测试,因为它是假设的代码):

use 5.012;
use warnings;

use Gtk2 '-init';    

sub with ($&) {
    local $_ = $_[0];
    $_[1]->();
    $_;
}

for (Gtk2::Window->new('toplevel')) {
    $_->set_title('Test Application');
    $_->add(with Gtk2::VBox->new {
        my $box = $_;
        $box->add(Gtk2::Button->new("Button $_")) for (1..4);
    });
    $_->show_all;
}
Gtk2->main;
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为with需要将块作为第一个参数才能使用漂亮的语法.有什么方法可以把它拉下来吗?

syntax perl lambda closures programming-languages

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

Java问题:JLabel类是整数版还是双版?

我正在用Java编写一个gui程序.我在书中找到了一个关于如何进行赋值的例子,但它使用的是JLabel,它只接受字符串而不是数字.

java user-interface programming-languages class

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

继承中的循环层次结构

我目前正在为java编写一个编译器.JLS说"类层次结构必须是非循环的".但是在哪种情况下:

            B extends A
            C extends A

            D extends B
            D extends C
Run Code Online (Sandbox Code Playgroud)

这是一个非循环图但无效如何检测到这种情况?我目前正在使用BFS,每当我看到后边缘时,我知道有一个循环,但BFS算法没有检测到上述情况.

java compiler-construction programming-languages

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

Kinect用什么语言?

我正在阅读许多不同的东西,似乎每天都有越来越多的端口出现,但是用于开发XBox Kinect的最简单(非移植)语言是什么?

我读过C#,C++和Java.我正在学习Processing和Paperscript,因为OpenFrameworks对于我目前的水平和过时的XCode来说有点太难了(由于界面的不同,我无法遵循指南).因此,虽然我正在考虑在社区学院学习C++或Java课程,但我不确定哪一个更适合用Kinect做事.

programming-languages kinect

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