Articles of design de linguagem

Por que o modelo de function não pode ser parcialmente especializado?

Eu sei que a especificação de linguagem proíbe a especialização parcial do modelo de function. Eu gostaria de saber a razão pela qual isso proíbe isso? Eles não são úteis? template void f() {} //allowed! template void f() {} //allowed! template void f() {} //not allowed! template void f() {} //not allowed!

Por que devemos definir tanto == e! = Em c #?

O compilador C # requer que sempre que um tipo personalizado definir operador == , ele também deve definir != (Veja aqui ). Por quê? Estou curioso para saber por que os projetistas acharam necessário e por que o compilador não pode padronizar uma implementação razoável para qualquer um dos operadores quando apenas o outro […]

Usando chaves variables ​​para acessar valores em objects JavaScript

O código: function updateDashboardData() { $.getJSON(“includes/system/ajaxDataInterface.php”, {recordcount:1}, function(data) { $(‘.stationContainer’).each(function(data) { var bsID = $(this).attr(“id”); var bsStatus = $(this).children(‘.stationStatus’); alert(data[bsID][0].time); bsStatus.find(‘.bs_maxHandsets’).text(data[bsID][0].maxHandsets); bsStatus.find(‘.bs_time’).text(data[bsID][0].time); }); }); } Os dados do object: { “A5A50000”: [{ “bsid”: “A5A50000”, “chanCount”: 17, “time”: “2009-05-27 16:36:45”, “avgInterference”: 1.711765, “maxInterference”: 4.97, “avgHandsets”: 205.1176, “maxHandsets”: 315, “avgCalls”: 6.4118, “maxCalls”: 13, “avgCBA”: 3868.98059, “maxCBA”: 7463, […]

Por que as variables ​​locais exigem boot, mas os campos não?

Se eu criar um bool dentro da minha class, apenas algo como bool check , o padrão é false. Quando eu crio o mesmo bool dentro do meu método, bool check (ao invés de dentro da class), recebo um erro “uso da verificação de variável local não atribuída”. Por quê?

Por que os idiomas não geram erros no estouro de números inteiros por padrão?

Em várias linguagens de programação modernas (incluindo C ++, Java e C #), a linguagem permite que um estouro de inteiro ocorra em tempo de execução sem aumentar qualquer tipo de condição de erro. Por exemplo, considere este método (criado) em C #, que não considera a possibilidade de estouro / estouro negativo. (Por questão […]

Por que o Ruby possui methods privados e protegidos?

Antes de ler este artigo , achei que o controle de access em Ruby funcionava assim: public – pode ser acessado por qualquer object (por exemplo, Obj.new.public_method ) protected – só pode ser acessado de dentro do próprio object, bem como de quaisquer subclasss private – mesmo que protegido, mas o método não existe em […]

O que significa void em C, C ++ e C #?

Olhando para obter os fundamentos de onde vem o termo ” vazio “, e porque é chamado de vazio. A intenção da pergunta é ajudar alguém que não tenha experiência em C e, de repente, está olhando para uma base de código baseada em C.

Por que a variável de iteração em uma instrução c # foreach é somente leitura?

Pelo que entendi, variável de iteração foreach do C # é imutável. O que significa que não posso modificar o iterador assim: foreach (Position Location in Map) { //We want to fudge the position to hide the exact coordinates Location = Location + Random(); //Compiler Error Plot(Location); } Eu não posso modificar a variável iterator […]

Por que os methods de extensão de class estática C # não são suportados?

Eu sei dessa questão que os methods de extensão só podem operar em instâncias de class, não na própria class estática. Isso significa que não posso estender classs estáticas úteis como Convert e Math . O que eu quero saber é, porque é esse o caso? No link acima, há algumas sugestões sobre como a […]

Por que as referências não são recolocáveis ​​em C ++?

Referências C ++ possuem duas propriedades: Eles sempre apontam para o mesmo object. Eles não podem ser 0. Os pointers são o oposto: Eles podem apontar para objects diferentes. Eles podem ser 0. Por que não há “referência ou ponteiro não anulável e substituível” em C ++? Não consigo pensar em uma boa razão pela […]