换句话说,以下两个语句的行为方式是否相同?
isFoobared = isFoobared && methodWithSideEffects();
isFoobared &= methodWithSideEffects();
Run Code Online (Sandbox Code Playgroud)
我意识到我可以写一个测试,但有人可能会知道这个,其他人可能会觉得答案很有用.
有没有办法轻松获取查询结果的列类型?我阅读了psql文档,但我认为它不支持.理想情况下,我可以得到类似的东西:
columna : text | columnb : integer
----------------+-------------------
oh hai | 42
Run Code Online (Sandbox Code Playgroud)
有没有办法在不编码的情况下获取这些信息?
对我来说它是:强大的类型
维基百科:
"强类型"意味着编程语言严格限制允许发生的混合,从而阻止编译或运行使用数据的源代码,这被认为是无效的方式
为什么重要?因为我喜欢编译错误比运行时错误更多.
我想最好提供一些信息和一些重要原因.
我正在研究一个在varchar(10)
mysql字段中存储日期的数据库(太可悲了).
我无法改变数据库结构(即构建一个小插件),但我必须查询数据库,查找此数据字段在接下来的10天之间的行.
例:
| fid | fdate |
| 1 | 10/09/2010 |
| 2 | 17/09/2010 |
| 3 | 19/09/2010 |
Run Code Online (Sandbox Code Playgroud)
我必须得到fid 1和2的行,因为日期是<=现在+ 10天.
通常我做这种查询:
SELECT fid FROM table WHERE fdate <= DATE_ADD(NOW(), INTERVAL 10 DAY);
Run Code Online (Sandbox Code Playgroud)
或者,如果日期的格式为"yyyymmdd":
SELECT fid FROM table WHERE fdate <= DATE_FORMAT(NOW(), '%Y%m%d');
Run Code Online (Sandbox Code Playgroud)
但它们对格式没用dd/mm/yyyy
.
我已经想通了
SELECT fid, CONCAT(SUBSTRING(fdate, 7, 4), SUBSTRING(fdate, 4, 2), SUBSTRING(fdate, 1, 2)) AS mydate FROM table HAVING mydate <= DATE_ADD(NOW(), INTERVAL 10 DAY);
Run Code Online (Sandbox Code Playgroud)
但我想用concat和substring重建日期格式有点过分,并且该having
子句不会帮助查询速度.
任何的想法? …
我PriorityQueue
用于部分数据的部分排序.特别是,这是代码:
Collection<Data> data = ...;
PriorityQueue<Data> queue = new PriorityQueue<Data>(data.size(), dataComparator);
queue.addAll(data);
// iterate over queue with remove() until we have as much data as we need or until queue is empty
Run Code Online (Sandbox Code Playgroud)
不幸的是,当data
集合为空时,代码失败,因为PriorityQueue
无法作为initialCapacity传递零.这个设计决定背后的原因是什么?为什么不能有0大小PriorityQueue
?
UPD:我知道如何解决这个问题.我想知道为什么不在其中PriorityQueue
包含这个max(1,n)代码 - 是否有任何原因或者它只是一个糟糕的API设计?
我有一个子程序,它稍微改变它的操作,包括一个列表或另一个列表,然后执行相同的操作.由于它只是计算列表中的项目数,我认为无论列表类型如何,都可能有一种简单的方法来获取项目数.
提前致谢!
编辑:
private List<Message> currentMessages;
private List<Lead> currentLeads;
...
private void nextLeadBtn_Click(object sender, EventArgs e)
{
object temp;
if (includeAllCheck.Checked)
{
temp = currentMessages;
if (SelectedLead == (currentMessages.Count - 1))
SelectedLead = 0;
else
SelectedLead += 1;
}
else
{
temp = currentLeads;
if (SelectedLead == (currentLeads.Count - 1))
SelectedLead = 0;
else
SelectedLead += 1;
}
// This is what I want to replace the above with
//if (SelectedLead == ((List)temp).Count - 1) //obviously this does not work …
Run Code Online (Sandbox Code Playgroud) 我想给一些用户一些权限.这会是最好的方式吗?我不想创建像:admin,moderator,normal等组.我希望能够让一个用户可以访问制作新闻帖子,另一个用户创建民意调查,也许还有另一个删除民意调查.
我在想这样的表格:
CREATE TABLE `users` (
`id` mediumint(8) unsigned NOT NULL,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
)
CREATE TABLE `user_permissions` (
`id` mediumint(8) unsigned NOT NULL,
`user_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
`can_post_news` tinyint(1) NOT NULL DEFAULT '0',
`can_delete_topics` tinyint(1) NOT NULL DEFAULT '0'
........
)
Run Code Online (Sandbox Code Playgroud)
在每个页面上我需要检查:
$sql = mysql_query("SELECT * FROM user_permissions WHERE user_id = $loggedinuser");
$row = mysql_fetch_assoc($sql);
if ($row['can_delete_topics'] == 1) {
mysql_query("delete from topics....");
}
Run Code Online (Sandbox Code Playgroud)
另一个问题:我可以创建一个'检查代码'的功能,所以我不需要在每个页面上使用这个丑陋的代码吗?(我的功能还不是很好)
请原谅我的英语,我正在尽我所能
谢谢
java ×2
c# ×1
collections ×1
date ×1
generics ×1
list ×1
mysql ×1
permissions ×1
postgresql ×1
psql ×1
sql ×1