当我从事 Python 和 C 的重复时,我的手不会以任何方式到达 Haskell。这个问题已经很久没有离开我的脑海了)我可以以某种方式简要回答它吗?
假设我想描述generic一个充当计算器的 -class,以便它对所有数字类型都以相同的方式工作。那些。:
- 字节
- 字节
- 短的
- 超短
- 整数
- 单位
- 长
- 乌龙
- 漂浮
- 双倍的
任务的复杂性在于,尽管所有这些类型都通过为其算术运算实例的定义而联合起来,但是,它们不继承任何类型的公共接口IArithmetical, INumber。而且其中的where 约束C#也不允许我们描述如下内容:
public static void Add<T>(T A, T B) where T : +, -, *, /, % ...
所以编译器不能确定利用该方法的所有可能类型都定义了正确的操作。
这会产生如下代码:
public class Calculator<T>
{
public T Add(T A, T B) => A + B;
public T Sub(T A, T B) => A - B;
public T Mul(T A, T B) => A * B;
public T Div(T A, T B) => A / B;
public T Mod(T A, T B) => A % B;
}
唉,根本无法编译:由于上述原因,会抛出错误CS0019
那么在这种情况下该怎么办呢?一般来说,是否有可能C#描述generic一个可以与数字一起使用并且只能与它们一起使用的类/方法?
收到来自Google的电子邮件:
嗨 Starikov Mark 的开发人员,
经审核,(应用名称)、(应用包)因违反政策而从 Google Play 下架。在您提交合规更新之前,用户将无法使用此应用。
问题:违反使用 Android 广告 ID 政策和开发者分发协议第 4.8 节
当应用请求或处理敏感的用户或设备信息时,Google Play 要求开发者提供有效的隐私政策。我们发现您的应用会收集和传输 Android 广告标识符,这受隐私政策要求的约束。如果您的应用收集 Android 广告 ID,则您必须在 Play 管理中心的指定字段以及应用内部提供有效的隐私政策。
后续步骤:提交您的应用以供再次审核
通读 Android 广告 ID 和用户数据的使用政策以及开发者分发协议,并对您的应用进行适当的更改。如果您决定收集敏感的用户信息,请务必遵守上述政策,并在应用的商品详情页面和应用内包含指向有效隐私政策的链接。确保您的应用符合所有其他开发者计划政策。如果进一步违反政策,可能会发生额外的强制执行。登录您的 Play 管理中心并将更新提交到您的应用。或者,您可以通过删除对敏感权限或用户数据的任何请求来选择退出此要求。
如果获得批准,您的应用将再次可用,并且所有安装、评分和评论都完好无损。
如果您已查看该政策并认为此次删除可能有误,请与我们的政策支持团队联系。我的一位同事将在 2 个工作日内回复您。
感谢您帮助我们为 Google Play 用户提供清晰透明的体验。
问候,
海梅
Google Play 团队
他们检查了我在Google Play上发布的应用,发现我使用的是横幅广告 ID,但没有提供隐私政策。
问题是这样的:
我从来没有写过隐私政策,也不知道要写什么,如何格式化等等。
需要张贴
URL。我没有自己的网站或博客。是否可以在GitHub 上使用该README文件,或者有更简单的方法吗?它还需要添加到应用程序中。究竟应该在哪里添加?当您第一次启动应用程序时?在设置或“关于”部分的某个地方?
处理泛型主题(根据 Shield 4.0),有必要编写一个泛型方法,如果数组包含某个值,该方法将返回布尔值 true。本书继续解释说,由于 T 是泛型类型,为了比较泛型类型的对象,这些对象的类必须实现带有 T 或 IEquatable 参数的 IEquatable 接口。还写到在这些接口中定义了一个比较 Equals() 的方法。这立即导致几个问题:
首先,为什么我们需要实现任何接口来比较泛型类型对象?Equals() 方法是指 Object => 中定义的方法,存在于每个对象中。我意识到为了在这个例子中比较对象,你需要实现上面描述的接口,但我不明白为什么要这样做。
其次,根据 Shield,正如我上面写的,为了比较泛型方法中的对象,建议使用参数 T 或 IEqutable 来实现 Equtable。一个是参数化的,另一个不是。问题是在哪种情况下应该使用哪一个?
此外,在他的书中,Shield 演示了一个检查值是否在数组中的方法示例。这是方法:
public static bool IsIn<T>(T what, T[] obs) where T : IEquatable<T>
{
foreach(T v in obs)
{
if (v.Equals(what))
{
return true;
}
else
{
return false;
}
}
}
这里还有两个问题。
首先,让我先说这种方法行不通。工作室产生编译错误“并非所有方法分支都返回值”。我重新检查了几次编写的代码,但错误仍然存在。如何解决?
其次,我不确定我是否正确理解该方法的签名意味着只有实现 IEquatable 接口的那些类型的对象才能传递给该方法?换句话说,如果我想将一些学生的数组传递给该方法并在其中找到 Vasya Pupkin,那么我的学生类应该是这样的?
class Student<T> : IEquatable<T>
{
public string Name;
public string Surname;
public bool Equals(T other)
{
//some code for compare
return false;
}
}
请按顺序回答所有问题。谢谢
用纯 CSS 画一个圆很容易。
.circle {
width: 100px;
height: 100px;
border-radius: 100px;
border: 3px solid black;
background-color: green;
}
如何绘制扇区?给定一个角度X - [0-360],我想画一个X度数的扇区。我可以用 pure 来做CSS吗?
例如:
JQuery如果它对某人有帮助,这里有一个获取百分比并绘制扇区 的函数示例。
$(function drawSector() {
var activeBorder = $("#activeBorder");
var prec = activeBorder.children().children().text();
if (prec > 100)
prec = 100;
var deg = prec * 3.6;
if (deg <= 180) {
activeBorder.css('background-image', 'linear-gradient(' + (90 + deg) + 'deg, transparent 50%, #A2ECFB 50%),linear-gradient(90deg, #A2ECFB 50%, transparent 50%)');
} else {
activeBorder.css('background-image', 'linear-gradient(' + (deg - 90) + 'deg, transparent 50%, #39B4CC 50%),linear-gradient(90deg, #A2ECFB 50%, transparent 50%)');
}
var startDeg = $("#startDeg").attr("class");
activeBorder.css('transform', 'rotate(' + startDeg + 'deg)');
$("#circle").css('transform', 'rotate(' + (-startDeg) + 'deg)');
});
.container {
width: 110px;
height: 110px;
margin: 100px auto;
}
.prec {
top: 30px;
position: relative;
font-size: 30px;
}
.prec:after {
content: '%';
}
.circle {
position: relative;
top: 5px;
left: 5px;
text-align: center;
width: 100px;
height: 100px;
border-radius: 100%;
background-color: #E6F4F7;
}
.active-border {
position: relative;
text-align: center;
width: 110px;
height: 110px;
border-radius: 100%;
background-color: #39B4CC;
background-image: linear-gradient(91deg, transparent 50%, #A2ECFB 50%), linear-gradient(90deg, #A2ECFB 50%, transparent 50%);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<div class="container">
<div id="activeBorder" class="active-border">
<div id="circle" class="circle">
<span class="prec">66</span>
<span id="startDeg" class="90"></span>
</div>
</div>
</div>
问题的意译如何在CSS中画一个圆扇形?通过 @Itay Gal。
