1
クラスまたはプロトコルの代わりに汎用クラス定義で値を使用する方法が見つかりませんでした。達成するために、よりエレガントな方法は何ですかスウィフトは汎用として値を使用します
struct Mat<a is Int, b is Int> {
static func * (left: Mat<i, j>, right: Mat<k, l>) -> Mat<i, l> where j == k {
return ...
}
}
let m = Matrix<4, 5>(...)
let n = Matrix<5, 3>(...)
let p = Matrix<2, 2>(...)
let x = m * n
let y = m * p // compiler error since size mismatch
:より一般的なMatrix<a, b>
を定義してからのようなものを行うことができるようによりよいと思いながら、例えば私たちはしばしばSCNMatrix3
、SCNMatrix4
のような行列クラスの数を見つけます上記?
[[カーディナリティタイプの安全性を備えた汎用ベクター](https://stackoverflow.com/questions/34342417/generic-vector-with-cardinality-type-safety)を比較してください。 –