这根本不被认为是一件坏事。事实上,C# 维护者已经开始使用 var
关键字来减少繁琐的样板文件,其中
MyContainer<MyType> cont = new MyContainer<MyType>();
完全等同于
var cont = new MyContainer<MyType>();
尽管您会看到很多人会反对 < code>var 用法,这表明很多人不熟悉具有类型推断的强类型语言;类型推断被误认为是动态/软类型。
正确的答案是您不......您让单元测试的工具为您完成工作:
// return '' if host invalid --
private function setHostname($host = '')
{
$ret = (!empty($host)) ? $host : '';
if(filter_var('http://'.$ret.'/', FILTER_VALIDATE_URL) === false) {
$ret = '';
}
return $ret;
}
由于 LTI 滤波器的系数是时域脉冲响应,因此您可以通过指定振幅向量和相位向量在 matlab 中创建频率响应,然后对它们进行反向 FFT 以获得系数,例如,类似 A = [ 1 .9 .8 .5 .2 .1 0]
,theta=[0 0 0 0 0 0 0]
,然后 H=A.*exp (j*theta)
然后 coefs = ifft(H)
九年了,仍然没有关于 float、double、long double
的最小大小的直接答案。
C 中的类型有保证的最小大小吗?
对于浮点类型...
从实用的角度来看,float
最小大小为32位 和 double
是 64 位。 C 允许 double
和 long double
具有相似的特征,因此 long double
可以和 double
一样小:示例1或80位或128位或者...
我可以想象一个符合 C 标准的 48 位 double
可能已经存在 - 但不知道有什么。
现在,让我们想象一下,我们富有的叔叔去世了,给我们留下了一笔财富,用于支付www.smallest_C_float.com的开发和文化推广。
C 指定:
-
float
有限范围至少为 [1E-37…1E+37]。请参阅FLT_MIN、FLT_MAX
-
(1.0f + FLT_EPSILON) – 1.0f <= 1E-5
。 -
float
支持正值和负值。设 X:数字 1-9
设 Y:数字 0-9
令E:值-37到36
设 S:+ 或 -
设b:0或1
我们的 float
可以使用以 10 为基数的 SX.YYYYY*10^E
最低限度地表示所有组合。
还需要 0.0
和 ±1E+37
(另外 3 个)。我们不需要 -0.0、次正常值、±无穷大或非数字。
即 2*9*105*74 + 3 个组合或 133,200,003,至少需要 27 位进行编码 - 不知何故。回想一下,目标是最小尺寸。
使用经典的基数为 2 的方法,我们可以假设隐含的 1 并得到
S1.bbbb_bbbb_bbbb_bbbb_b*2e 或 2*217*226 组合或 26 位。
如果我们尝试以 16 为基数,则需要大约 2*15*16(4 或 5)*57 个组合或至少 26 到 30 位。
结论:AC float
至少需要 26 位编码。
C 的double
不需要表达比float
更大的指数范围,它仅具有不同的最小精度要求。 1E-9
。
S1.bbbb_bbbb_bbbb_bbbb_ bbbb_ bbbb_ bbbb_bb*2e --> 2*230*226 组合或 39 位。
在我们的想象一下计算机上,我们可以有一个 13 位 char
,因此可以对 float、double、long double
进行编码,而无需填充。这样我们就可以实现一个非填充的26位float
和39位double, long double
。
1:Microsoft Visual C++ for x86,它使 long double
double
的同义词
[编辑] 2020
额外的 double
要求可能需要 41 位。可能必须使用 42 位 double
和 28 位 float
。需要复查。叔叔会不高兴的。
如果你有一个指向字符串的指针,
" string with leading spaces"
^ pointer
只需移动它......
" string with leading spaces"
^ pointer
例如:
#include <ctype.h>
/* ... */
char mystring[] = " string with leading spaces";
char *pointer = mystring;
while (*pointer && isspace((unsigned char)*pointer)) ++pointer;
/* pointer now points to a (possibly empty) string with no leading spaces */
除非你用 做一些棘手的事情代理认证&审核您将只能登录该应用程序。否则,我会按处理器进行许可。
这是另一个想法(实际上是我们如何解决配置问题)。也许这更适合您的需求。
我们的配置文件也相当大,但唯一真正改变的是配置字符串。
我们为每个配置都有一个文件,其中包含特定的配置字符串(用于开发的数据库、用于构建的数据库、用于 QA 的数据库)。这些文件如下所示:
<templates>
<template key="db" value="development server connection string"/>
<template .../>
</templates>
这些文件以它们使用的环境命名(devel.xml、build.xml、qa.xml
)
在配置文件中,连接字符串被占位符替换( ${db}
)。
我们为每个环境(开发、构建、质量保证)提供了构建配置。构建此类配置时,构建后事件会将配置文件中的占位符替换为模板文件中存储的值。这将为每个环境生成正确的配置文件。
这个想法取自使用预构建事件管理多个配置文件环境,但扩展为模板替换。
不确定您是问 2 个问题还是仅问 1 个问题,即将整个类别复制为新类别(即复制类别)还是将现有类别重新分配给新的父类别 - 每个问题/解决方案都不同,但是让我们从复制整个类别开始。
首先,如果您使用基于身份的列,则在不使用“set Identity_insert on”选项的情况下,唯一的方法是将光标从根节点开始遍历整个树并向下工作(即插入顶级类别,获取新创建的标识值,插入第二级类别等)。如果您处于可以使用“set Identity_insert on”的场景,或者可以用显式数字替换身份的使用,那么您可以利用下面的代码。
在此代码中,您会注意到使用了 CTE、< a href="http://msdn.microsoft.com/en-us/library/ms186243.aspx" rel="nofollow noreferrer">递归 CTE 和 排名函数,因此假定 Sql 2005 或更高版本。此外,lvl、path 和 cnt 列仅出于演示目的而包含,您可以根据需要查看,但在任何最终解决方案中都不需要:
declare @root_category_id bigint,
@start_new_id_value bigint;
-- What category id do we want to move?
select @root_category_id = 3;
-- Get the current max id and pad a bit...
select @start_new_id_value = max(categoryId)
from Category;
select @start_new_id_value = coalesce(@start_new_id_value,0) + 100;
-- Show our values
select @root_category_id, @start_new_id_value;
begin tran;
set identity_insert Category on;
-- This query will give you the entire category tree
with subs (catId, parentCatId, catName, lvl, path, new_id, new_parent_id, cnt) as (
-- Anchor member returns a row for the input manager
select catId, parentCatId, catName, 0 as lvl,
cast(cast(catId as varchar(10)) as varchar(max)) as path,
@start_new_id_value + row_number() over(order by catId) - 1 as new_id,
cast(parentCatId as bigint) as new_parent_id,
count(*) over(partition by 0) as cnt
from Category
where catId = @root_category_id
union all
-- recursive member returns next level of children
select c.catId, c.parentCatId, c.catName, p.lvl + 1,
cast(p.path + '.' + cast(catId as varchar(10)) as varchar(max)),
p.cnt + row_number() over(order by c.catId) + p.new_id - 1 as new_id,
p.new_id as new_parent_id,
count(*) over(partition by p.lvl) as cnt
from subs as p -- Parent
join Category as c -- Child
on c.parentCatId = p.catId
)
-- Perform the insert
insert Category
(categoryId, Name, parentCategoryId)
select s.catId, s.catName, s.parentCatId
from subs s
--order by path;
set identity_insert Category off;
commit tran;
var pages=["[www.google.co.uk] This is the WWW. ","[www.yahoo.co.uk] This is also the WWW. ";
function findScoresC(s){
var scores=[];
var words=[];
s=s.toLowerCase();
for(i=0;i<pages.length; i++)
{
scores[i]=0;
var lowerCaseContents=(pages[i].substring(pages[i].indexOf("]")+1,pages[i].lastIndexOf(" "))).toLowerCase();
words=lowerCaseContents.split(" ");
for(j=0;j<words.length;j++)
{
if(words[j].match(s))
{
scores[i] += 1;
}
}
}
return scores;
}
alert(findScoresC("w"));
有几件事。我将内部索引的“i”替换为“j”。右括号后不需要加分号。说明后应该有一个分号(缺少几个分号)。
可能主要问题(在“i”问题之后)是分数[i]应该设置在内循环之外。如果将 cosing 括号分成单独的行,而不是像“scores[i] =indexScore[i]}};
”,这会更清楚。
事实证明,变量 indexScore
不是必需的。这使我可以将 scores[i]
引入内部循环以直接累积单词点击量。
最后,我更愿意将 pages
变量作为参数传递给函数,而不是假设它在全局空间中可用。如果可以的话,我倾向于避免全局变量。
var pages = [...];
function findScoresC(pages, s)
{
...
}
alert(findScoresC(pages, "w"));
我知道这是一个老问题(从 2009 年开始),但我想补充一下,以防有人在 Liferay 6 中遇到同样的问题。
实际上,您只需进入部署目录就可以非常轻松地开发主题:
/deploy/
进入其中后,查找默认的 seven-cogs-theme.war
文件夹。我最初所做的是复制和复制将该文件夹粘贴到我的桌面(或任何开发位置)进行编辑。我使用 Notepad++ 修改了 XML 文件以反映我的主题名称(以及重命名目录)。
然后,您可以将主题修改为您认为合适的方式(速度模板/CSS/图像/JavaScript 包含/等)。
您可以在 Liferay 6 上开发主题 LIVE(F5 刷新并查看更改),您必须设置门户以启用开发人员模式(禁用 js 最小化器/CSS 缓存/最小化器/图像缓存/等)。
您可以通过搜索找到其中的每一个部分(门户的开发人员模式等;)。
总的来说,您可以使用 Liferay 来根据自己的喜好进行修改。
我目前正在使用 Liferay 和 Coldfusion 9 进行 portlet 开发。希望对某人有帮助。
在本地测试时,iis7 往往会向您显示一般错误消息,除非您向 httpErrors
添加属性 errorMode="Custom"
。您需要编辑C:\Windows\System32\inetsrv\config\applicationHost.config
以允许这样做。
jQuery 是一个 JavaScript 库,其目的是使一些浏览器脚本任务变得更容易。它不是 JavaScript 的替代品。不要试图将它用于所有事情。
另外,在链接中使用 onclick
比使用 javascript:
伪协议更好,并且您应该为链接提供真实的 URL,以便用户在使用 JavaScript 时进行操作关闭:
<a href="non_js_alternative.html" onclick="abc(1, 2, 3);">click here to check value of abc </a>
为了创建一个“点”,您使用“椭圆形”形状,即一个小圆圈,您可以将线条和填充颜色设置为相同,即
Sub DoDot()
'create a circular shape
ActiveWindow.Selection.SlideRange.Shapes.AddShape(msoShapeOval, 144.5, 150.88, 11.38, 11.38).Select
With ActiveWindow.Selection.ShapeRange
' color it
.Line.ForeColor.SchemeColor = ppAccent1
.Line.Visible = msoTrue
.Fill.ForeColor.SchemeColor = ppAccent1
.Fill.Visible = msoTrue
.Fill.Solid
' move it
.Top = 10
.Left = 10
End With
End Sub
我在这里使用了SchemeColor属性来为形状着色,您当然可以使用以及明确的 RGB 颜色。
稍后,如果您想用线连接点,您将需要移动点并
(重新)在它们之间创建线条,或者使用点状线条末端类型
Sub LineWithEndType()
ActiveWindow.Selection.SlideRange.Shapes.AddLine(195.62, 162.25, 439.38, 309.75).Select
With ActiveWindow.Selection.ShapeRange
.Line.Visible = msoTrue
.Fill.Transparency = 0#
.Line.BeginArrowheadStyle = msoArrowheadOval
.Line.EndArrowheadStyle = msoArrowheadOval
.Line.BeginArrowheadLength = msoArrowheadLong
.Line.BeginArrowheadWidth = msoArrowheadWide
.Line.EndArrowheadLength = msoArrowheadLong
.Line.EndArrowheadWidth = msoArrowheadWide
End With
End Sub
希望有帮助
祝你好运麦克D
顺便说一句:我通过编码解决了这个问题:
现在它可以工作了!现在我可以写:
Btw: I fixed this Problem by coding:
now it works! Now I can write:
json 错误:“元素列表后缺少 ]”或者只是“未定义”